All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cinchapi.concourse.thrift.ConcourseCalculateService Maven / Gradle / Ivy

Go to download

Concourse is a self-tuning database that is designed for both ad hoc analytics and high volume transactions at scale. Developers use Concourse to quickly build mission critical software while also benefiting from real time insight into their most important data. With Concourse, end-to-end data management requires no extra infrastructure, no prior configuration and no additional coding–all of which greatly reduce costs and allow developers to focus on core business problems.

There is a newer version: 0.11.2
Show newest version
/*
 * Copyright (c) 2013-2019 Cinchapi Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.cinchapi.concourse.thrift;

@SuppressWarnings({ "cast", "rawtypes", "serial", "unchecked", "unused" })
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-07-20")
public class ConcourseCalculateService {

    public interface Iface {

        public com.cinchapi.concourse.thrift.TObject sumKeyRecord(
                java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyRecordTime(
                java.lang.String key, long record, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyRecordTimestr(
                java.lang.String key, long record, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyRecords(
                java.lang.String key, java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyRecordsTime(
                java.lang.String key, java.util.List records,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyRecordsTimestr(
                java.lang.String key, java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKey(
                java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyTime(
                java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyTimestr(
                java.lang.String key, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyCriteria(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyCriteriaTime(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyCriteriaTimestr(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyCcl(
                java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyCclTime(
                java.lang.String key, java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject sumKeyCclTimestr(
                java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyRecord(
                java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyRecordTime(
                java.lang.String key, long record, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyRecordTimestr(
                java.lang.String key, long record, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyRecords(
                java.lang.String key, java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyRecordsTime(
                java.lang.String key, java.util.List records,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyRecordsTimestr(
                java.lang.String key, java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKey(
                java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyTime(
                java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyTimestr(
                java.lang.String key, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyCriteria(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyCriteriaTime(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyCriteriaTimestr(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyCcl(
                java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyCclTime(
                java.lang.String key, java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject averageKeyCclTimestr(
                java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyCclTime(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public long countKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyRecord(
                java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyRecordTime(
                java.lang.String key, long record, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyRecordTimestr(
                java.lang.String key, long record, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyRecords(
                java.lang.String key, java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyRecordsTime(
                java.lang.String key, java.util.List records,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyRecordsTimestr(
                java.lang.String key, java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyCriteria(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyCriteriaTime(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyCriteriaTimestr(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyCcl(
                java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyCclTime(
                java.lang.String key, java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyCclTimestr(
                java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKey(
                java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyTime(
                java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject maxKeyTimestr(
                java.lang.String key, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyRecord(
                java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyRecordTime(
                java.lang.String key, long record, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyRecordTimestr(
                java.lang.String key, long record, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKey(
                java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyRecordsTime(
                java.lang.String key, java.util.List records,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyRecordsTimestr(
                java.lang.String key, java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyCriteria(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyCriteriaTime(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyCriteriaTimestr(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyCcl(
                java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyCclTime(
                java.lang.String key, java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyCclTimestr(
                java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyTime(
                java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyTimestr(
                java.lang.String key, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

        public com.cinchapi.concourse.thrift.TObject minKeyRecords(
                java.lang.String key, java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException;

    }

    public interface AsyncIface {

        public void sumKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyCclTime(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void sumKeyCclTimestr(java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyCclTime(java.lang.String key,
                java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void averageKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyCclTime(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void countKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyCclTime(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyCclTimestr(java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void maxKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyCclTime(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyCclTimestr(java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

        public void minKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException;

    }

    public static class Client extends org.apache.thrift.TServiceClient
            implements Iface {
        public static class Factory
                implements org.apache.thrift.TServiceClientFactory {
            public Factory() {}

            public Client getClient(org.apache.thrift.protocol.TProtocol prot) {
                return new Client(prot);
            }

            public Client getClient(org.apache.thrift.protocol.TProtocol iprot,
                    org.apache.thrift.protocol.TProtocol oprot) {
                return new Client(iprot, oprot);
            }
        }

        public Client(org.apache.thrift.protocol.TProtocol prot) {
            super(prot, prot);
        }

        public Client(org.apache.thrift.protocol.TProtocol iprot,
                org.apache.thrift.protocol.TProtocol oprot) {
            super(iprot, oprot);
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyRecord(
                java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyRecord(key, record, creds, transaction, environment);
            return recv_sumKeyRecord();
        }

        public void send_sumKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyRecord_args args = new sumKeyRecord_args();
            args.setKey(key);
            args.setRecord(record);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyRecord", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyRecord()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyRecord_result result = new sumKeyRecord_result();
            receiveBase(result, "sumKeyRecord");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyRecord failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyRecordTime(
                java.lang.String key, long record, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyRecordTime(key, record, timestamp, creds, transaction,
                    environment);
            return recv_sumKeyRecordTime();
        }

        public void send_sumKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyRecordTime_args args = new sumKeyRecordTime_args();
            args.setKey(key);
            args.setRecord(record);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyRecordTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyRecordTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyRecordTime_result result = new sumKeyRecordTime_result();
            receiveBase(result, "sumKeyRecordTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyRecordTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyRecordTimestr(
                java.lang.String key, long record, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyRecordTimestr(key, record, timestamp, creds, transaction,
                    environment);
            return recv_sumKeyRecordTimestr();
        }

        public void send_sumKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyRecordTimestr_args args = new sumKeyRecordTimestr_args();
            args.setKey(key);
            args.setRecord(record);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyRecordTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyRecordTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyRecordTimestr_result result = new sumKeyRecordTimestr_result();
            receiveBase(result, "sumKeyRecordTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyRecordTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyRecords(
                java.lang.String key, java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyRecords(key, records, creds, transaction, environment);
            return recv_sumKeyRecords();
        }

        public void send_sumKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyRecords_args args = new sumKeyRecords_args();
            args.setKey(key);
            args.setRecords(records);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyRecords", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyRecords()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyRecords_result result = new sumKeyRecords_result();
            receiveBase(result, "sumKeyRecords");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyRecords failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyRecordsTime(
                java.lang.String key, java.util.List records,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyRecordsTime(key, records, timestamp, creds, transaction,
                    environment);
            return recv_sumKeyRecordsTime();
        }

        public void send_sumKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyRecordsTime_args args = new sumKeyRecordsTime_args();
            args.setKey(key);
            args.setRecords(records);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyRecordsTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyRecordsTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyRecordsTime_result result = new sumKeyRecordsTime_result();
            receiveBase(result, "sumKeyRecordsTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyRecordsTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyRecordsTimestr(
                java.lang.String key, java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyRecordsTimestr(key, records, timestamp, creds,
                    transaction, environment);
            return recv_sumKeyRecordsTimestr();
        }

        public void send_sumKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyRecordsTimestr_args args = new sumKeyRecordsTimestr_args();
            args.setKey(key);
            args.setRecords(records);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyRecordsTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyRecordsTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyRecordsTimestr_result result = new sumKeyRecordsTimestr_result();
            receiveBase(result, "sumKeyRecordsTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyRecordsTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKey(
                java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKey(key, creds, transaction, environment);
            return recv_sumKey();
        }

        public void send_sumKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKey_args args = new sumKey_args();
            args.setKey(key);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKey", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKey()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKey_result result = new sumKey_result();
            receiveBase(result, "sumKey");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKey failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyTime(
                java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyTime(key, timestamp, creds, transaction, environment);
            return recv_sumKeyTime();
        }

        public void send_sumKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyTime_args args = new sumKeyTime_args();
            args.setKey(key);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyTime_result result = new sumKeyTime_result();
            receiveBase(result, "sumKeyTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyTimestr(
                java.lang.String key, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyTimestr(key, timestamp, creds, transaction, environment);
            return recv_sumKeyTimestr();
        }

        public void send_sumKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyTimestr_args args = new sumKeyTimestr_args();
            args.setKey(key);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyTimestr_result result = new sumKeyTimestr_result();
            receiveBase(result, "sumKeyTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyCriteria(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyCriteria(key, criteria, creds, transaction, environment);
            return recv_sumKeyCriteria();
        }

        public void send_sumKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyCriteria_args args = new sumKeyCriteria_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyCriteria", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyCriteria()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyCriteria_result result = new sumKeyCriteria_result();
            receiveBase(result, "sumKeyCriteria");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyCriteria failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyCriteriaTime(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyCriteriaTime(key, criteria, timestamp, creds,
                    transaction, environment);
            return recv_sumKeyCriteriaTime();
        }

        public void send_sumKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyCriteriaTime_args args = new sumKeyCriteriaTime_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyCriteriaTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyCriteriaTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyCriteriaTime_result result = new sumKeyCriteriaTime_result();
            receiveBase(result, "sumKeyCriteriaTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyCriteriaTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyCriteriaTimestr(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyCriteriaTimestr(key, criteria, timestamp, creds,
                    transaction, environment);
            return recv_sumKeyCriteriaTimestr();
        }

        public void send_sumKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyCriteriaTimestr_args args = new sumKeyCriteriaTimestr_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyCriteriaTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyCriteriaTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyCriteriaTimestr_result result = new sumKeyCriteriaTimestr_result();
            receiveBase(result, "sumKeyCriteriaTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyCriteriaTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyCcl(
                java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyCcl(key, ccl, creds, transaction, environment);
            return recv_sumKeyCcl();
        }

        public void send_sumKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyCcl_args args = new sumKeyCcl_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyCcl", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyCcl()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyCcl_result result = new sumKeyCcl_result();
            receiveBase(result, "sumKeyCcl");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyCcl failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyCclTime(
                java.lang.String key, java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyCclTime(key, ccl, timestamp, creds, transaction,
                    environment);
            return recv_sumKeyCclTime();
        }

        public void send_sumKeyCclTime(java.lang.String key,
                java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyCclTime_args args = new sumKeyCclTime_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyCclTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyCclTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyCclTime_result result = new sumKeyCclTime_result();
            receiveBase(result, "sumKeyCclTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyCclTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject sumKeyCclTimestr(
                java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_sumKeyCclTimestr(key, ccl, timestamp, creds, transaction,
                    environment);
            return recv_sumKeyCclTimestr();
        }

        public void send_sumKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            sumKeyCclTimestr_args args = new sumKeyCclTimestr_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("sumKeyCclTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_sumKeyCclTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            sumKeyCclTimestr_result result = new sumKeyCclTimestr_result();
            receiveBase(result, "sumKeyCclTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "sumKeyCclTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyRecord(
                java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyRecord(key, record, creds, transaction, environment);
            return recv_averageKeyRecord();
        }

        public void send_averageKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyRecord_args args = new averageKeyRecord_args();
            args.setKey(key);
            args.setRecord(record);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyRecord", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyRecord()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyRecord_result result = new averageKeyRecord_result();
            receiveBase(result, "averageKeyRecord");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyRecord failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyRecordTime(
                java.lang.String key, long record, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyRecordTime(key, record, timestamp, creds,
                    transaction, environment);
            return recv_averageKeyRecordTime();
        }

        public void send_averageKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyRecordTime_args args = new averageKeyRecordTime_args();
            args.setKey(key);
            args.setRecord(record);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyRecordTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyRecordTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyRecordTime_result result = new averageKeyRecordTime_result();
            receiveBase(result, "averageKeyRecordTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyRecordTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyRecordTimestr(
                java.lang.String key, long record, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyRecordTimestr(key, record, timestamp, creds,
                    transaction, environment);
            return recv_averageKeyRecordTimestr();
        }

        public void send_averageKeyRecordTimestr(java.lang.String key,
                long record, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyRecordTimestr_args args = new averageKeyRecordTimestr_args();
            args.setKey(key);
            args.setRecord(record);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyRecordTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyRecordTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyRecordTimestr_result result = new averageKeyRecordTimestr_result();
            receiveBase(result, "averageKeyRecordTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyRecordTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyRecords(
                java.lang.String key, java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyRecords(key, records, creds, transaction,
                    environment);
            return recv_averageKeyRecords();
        }

        public void send_averageKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyRecords_args args = new averageKeyRecords_args();
            args.setKey(key);
            args.setRecords(records);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyRecords", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyRecords()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyRecords_result result = new averageKeyRecords_result();
            receiveBase(result, "averageKeyRecords");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyRecords failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyRecordsTime(
                java.lang.String key, java.util.List records,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyRecordsTime(key, records, timestamp, creds,
                    transaction, environment);
            return recv_averageKeyRecordsTime();
        }

        public void send_averageKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyRecordsTime_args args = new averageKeyRecordsTime_args();
            args.setKey(key);
            args.setRecords(records);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyRecordsTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyRecordsTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyRecordsTime_result result = new averageKeyRecordsTime_result();
            receiveBase(result, "averageKeyRecordsTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyRecordsTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyRecordsTimestr(
                java.lang.String key, java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyRecordsTimestr(key, records, timestamp, creds,
                    transaction, environment);
            return recv_averageKeyRecordsTimestr();
        }

        public void send_averageKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyRecordsTimestr_args args = new averageKeyRecordsTimestr_args();
            args.setKey(key);
            args.setRecords(records);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyRecordsTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyRecordsTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyRecordsTimestr_result result = new averageKeyRecordsTimestr_result();
            receiveBase(result, "averageKeyRecordsTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyRecordsTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKey(
                java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKey(key, creds, transaction, environment);
            return recv_averageKey();
        }

        public void send_averageKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKey_args args = new averageKey_args();
            args.setKey(key);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKey", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKey()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKey_result result = new averageKey_result();
            receiveBase(result, "averageKey");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKey failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyTime(
                java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyTime(key, timestamp, creds, transaction,
                    environment);
            return recv_averageKeyTime();
        }

        public void send_averageKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyTime_args args = new averageKeyTime_args();
            args.setKey(key);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyTime_result result = new averageKeyTime_result();
            receiveBase(result, "averageKeyTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyTimestr(
                java.lang.String key, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyTimestr(key, timestamp, creds, transaction,
                    environment);
            return recv_averageKeyTimestr();
        }

        public void send_averageKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyTimestr_args args = new averageKeyTimestr_args();
            args.setKey(key);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyTimestr_result result = new averageKeyTimestr_result();
            receiveBase(result, "averageKeyTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyCriteria(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyCriteria(key, criteria, creds, transaction,
                    environment);
            return recv_averageKeyCriteria();
        }

        public void send_averageKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyCriteria_args args = new averageKeyCriteria_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyCriteria", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyCriteria()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyCriteria_result result = new averageKeyCriteria_result();
            receiveBase(result, "averageKeyCriteria");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyCriteria failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyCriteriaTime(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyCriteriaTime(key, criteria, timestamp, creds,
                    transaction, environment);
            return recv_averageKeyCriteriaTime();
        }

        public void send_averageKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyCriteriaTime_args args = new averageKeyCriteriaTime_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyCriteriaTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyCriteriaTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyCriteriaTime_result result = new averageKeyCriteriaTime_result();
            receiveBase(result, "averageKeyCriteriaTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyCriteriaTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyCriteriaTimestr(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyCriteriaTimestr(key, criteria, timestamp, creds,
                    transaction, environment);
            return recv_averageKeyCriteriaTimestr();
        }

        public void send_averageKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyCriteriaTimestr_args args = new averageKeyCriteriaTimestr_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyCriteriaTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyCriteriaTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyCriteriaTimestr_result result = new averageKeyCriteriaTimestr_result();
            receiveBase(result, "averageKeyCriteriaTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyCriteriaTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyCcl(
                java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyCcl(key, ccl, creds, transaction, environment);
            return recv_averageKeyCcl();
        }

        public void send_averageKeyCcl(java.lang.String key,
                java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyCcl_args args = new averageKeyCcl_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyCcl", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyCcl()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyCcl_result result = new averageKeyCcl_result();
            receiveBase(result, "averageKeyCcl");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyCcl failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyCclTime(
                java.lang.String key, java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyCclTime(key, ccl, timestamp, creds, transaction,
                    environment);
            return recv_averageKeyCclTime();
        }

        public void send_averageKeyCclTime(java.lang.String key,
                java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyCclTime_args args = new averageKeyCclTime_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyCclTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyCclTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyCclTime_result result = new averageKeyCclTime_result();
            receiveBase(result, "averageKeyCclTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyCclTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject averageKeyCclTimestr(
                java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_averageKeyCclTimestr(key, ccl, timestamp, creds, transaction,
                    environment);
            return recv_averageKeyCclTimestr();
        }

        public void send_averageKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            averageKeyCclTimestr_args args = new averageKeyCclTimestr_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("averageKeyCclTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_averageKeyCclTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            averageKeyCclTimestr_result result = new averageKeyCclTimestr_result();
            receiveBase(result, "averageKeyCclTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "averageKeyCclTimestr failed: unknown result");
        }

        public long countKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyRecord(key, record, creds, transaction, environment);
            return recv_countKeyRecord();
        }

        public void send_countKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyRecord_args args = new countKeyRecord_args();
            args.setKey(key);
            args.setRecord(record);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyRecord", args);
        }

        public long recv_countKeyRecord()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyRecord_result result = new countKeyRecord_result();
            receiveBase(result, "countKeyRecord");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyRecord failed: unknown result");
        }

        public long countKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyRecordTime(key, record, timestamp, creds, transaction,
                    environment);
            return recv_countKeyRecordTime();
        }

        public void send_countKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyRecordTime_args args = new countKeyRecordTime_args();
            args.setKey(key);
            args.setRecord(record);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyRecordTime", args);
        }

        public long recv_countKeyRecordTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyRecordTime_result result = new countKeyRecordTime_result();
            receiveBase(result, "countKeyRecordTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyRecordTime failed: unknown result");
        }

        public long countKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyRecordTimestr(key, record, timestamp, creds,
                    transaction, environment);
            return recv_countKeyRecordTimestr();
        }

        public void send_countKeyRecordTimestr(java.lang.String key,
                long record, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyRecordTimestr_args args = new countKeyRecordTimestr_args();
            args.setKey(key);
            args.setRecord(record);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyRecordTimestr", args);
        }

        public long recv_countKeyRecordTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyRecordTimestr_result result = new countKeyRecordTimestr_result();
            receiveBase(result, "countKeyRecordTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyRecordTimestr failed: unknown result");
        }

        public long countKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyRecords(key, records, creds, transaction, environment);
            return recv_countKeyRecords();
        }

        public void send_countKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyRecords_args args = new countKeyRecords_args();
            args.setKey(key);
            args.setRecords(records);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyRecords", args);
        }

        public long recv_countKeyRecords()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyRecords_result result = new countKeyRecords_result();
            receiveBase(result, "countKeyRecords");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyRecords failed: unknown result");
        }

        public long countKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyRecordsTime(key, records, timestamp, creds,
                    transaction, environment);
            return recv_countKeyRecordsTime();
        }

        public void send_countKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyRecordsTime_args args = new countKeyRecordsTime_args();
            args.setKey(key);
            args.setRecords(records);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyRecordsTime", args);
        }

        public long recv_countKeyRecordsTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyRecordsTime_result result = new countKeyRecordsTime_result();
            receiveBase(result, "countKeyRecordsTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyRecordsTime failed: unknown result");
        }

        public long countKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyRecordsTimestr(key, records, timestamp, creds,
                    transaction, environment);
            return recv_countKeyRecordsTimestr();
        }

        public void send_countKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyRecordsTimestr_args args = new countKeyRecordsTimestr_args();
            args.setKey(key);
            args.setRecords(records);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyRecordsTimestr", args);
        }

        public long recv_countKeyRecordsTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyRecordsTimestr_result result = new countKeyRecordsTimestr_result();
            receiveBase(result, "countKeyRecordsTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyRecordsTimestr failed: unknown result");
        }

        public long countKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKey(key, creds, transaction, environment);
            return recv_countKey();
        }

        public void send_countKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKey_args args = new countKey_args();
            args.setKey(key);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKey", args);
        }

        public long recv_countKey()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKey_result result = new countKey_result();
            receiveBase(result, "countKey");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKey failed: unknown result");
        }

        public long countKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyTime(key, timestamp, creds, transaction, environment);
            return recv_countKeyTime();
        }

        public void send_countKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyTime_args args = new countKeyTime_args();
            args.setKey(key);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyTime", args);
        }

        public long recv_countKeyTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyTime_result result = new countKeyTime_result();
            receiveBase(result, "countKeyTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyTime failed: unknown result");
        }

        public long countKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyTimestr(key, timestamp, creds, transaction,
                    environment);
            return recv_countKeyTimestr();
        }

        public void send_countKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyTimestr_args args = new countKeyTimestr_args();
            args.setKey(key);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyTimestr", args);
        }

        public long recv_countKeyTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyTimestr_result result = new countKeyTimestr_result();
            receiveBase(result, "countKeyTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyTimestr failed: unknown result");
        }

        public long countKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyCriteria(key, criteria, creds, transaction,
                    environment);
            return recv_countKeyCriteria();
        }

        public void send_countKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyCriteria_args args = new countKeyCriteria_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyCriteria", args);
        }

        public long recv_countKeyCriteria()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyCriteria_result result = new countKeyCriteria_result();
            receiveBase(result, "countKeyCriteria");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyCriteria failed: unknown result");
        }

        public long countKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyCriteriaTime(key, criteria, timestamp, creds,
                    transaction, environment);
            return recv_countKeyCriteriaTime();
        }

        public void send_countKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyCriteriaTime_args args = new countKeyCriteriaTime_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyCriteriaTime", args);
        }

        public long recv_countKeyCriteriaTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyCriteriaTime_result result = new countKeyCriteriaTime_result();
            receiveBase(result, "countKeyCriteriaTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyCriteriaTime failed: unknown result");
        }

        public long countKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyCriteriaTimestr(key, criteria, timestamp, creds,
                    transaction, environment);
            return recv_countKeyCriteriaTimestr();
        }

        public void send_countKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyCriteriaTimestr_args args = new countKeyCriteriaTimestr_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyCriteriaTimestr", args);
        }

        public long recv_countKeyCriteriaTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyCriteriaTimestr_result result = new countKeyCriteriaTimestr_result();
            receiveBase(result, "countKeyCriteriaTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyCriteriaTimestr failed: unknown result");
        }

        public long countKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyCcl(key, ccl, creds, transaction, environment);
            return recv_countKeyCcl();
        }

        public void send_countKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyCcl_args args = new countKeyCcl_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyCcl", args);
        }

        public long recv_countKeyCcl()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyCcl_result result = new countKeyCcl_result();
            receiveBase(result, "countKeyCcl");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyCcl failed: unknown result");
        }

        public long countKeyCclTime(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyCclTime(key, ccl, timestamp, creds, transaction,
                    environment);
            return recv_countKeyCclTime();
        }

        public void send_countKeyCclTime(java.lang.String key,
                java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyCclTime_args args = new countKeyCclTime_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyCclTime", args);
        }

        public long recv_countKeyCclTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyCclTime_result result = new countKeyCclTime_result();
            receiveBase(result, "countKeyCclTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyCclTime failed: unknown result");
        }

        public long countKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_countKeyCclTimestr(key, ccl, timestamp, creds, transaction,
                    environment);
            return recv_countKeyCclTimestr();
        }

        public void send_countKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            countKeyCclTimestr_args args = new countKeyCclTimestr_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("countKeyCclTimestr", args);
        }

        public long recv_countKeyCclTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            countKeyCclTimestr_result result = new countKeyCclTimestr_result();
            receiveBase(result, "countKeyCclTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "countKeyCclTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyRecord(
                java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyRecord(key, record, creds, transaction, environment);
            return recv_maxKeyRecord();
        }

        public void send_maxKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyRecord_args args = new maxKeyRecord_args();
            args.setKey(key);
            args.setRecord(record);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyRecord", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyRecord()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyRecord_result result = new maxKeyRecord_result();
            receiveBase(result, "maxKeyRecord");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyRecord failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyRecordTime(
                java.lang.String key, long record, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyRecordTime(key, record, timestamp, creds, transaction,
                    environment);
            return recv_maxKeyRecordTime();
        }

        public void send_maxKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyRecordTime_args args = new maxKeyRecordTime_args();
            args.setKey(key);
            args.setRecord(record);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyRecordTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyRecordTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyRecordTime_result result = new maxKeyRecordTime_result();
            receiveBase(result, "maxKeyRecordTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyRecordTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyRecordTimestr(
                java.lang.String key, long record, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyRecordTimestr(key, record, timestamp, creds, transaction,
                    environment);
            return recv_maxKeyRecordTimestr();
        }

        public void send_maxKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyRecordTimestr_args args = new maxKeyRecordTimestr_args();
            args.setKey(key);
            args.setRecord(record);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyRecordTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyRecordTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyRecordTimestr_result result = new maxKeyRecordTimestr_result();
            receiveBase(result, "maxKeyRecordTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyRecordTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyRecords(
                java.lang.String key, java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyRecords(key, records, creds, transaction, environment);
            return recv_maxKeyRecords();
        }

        public void send_maxKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyRecords_args args = new maxKeyRecords_args();
            args.setKey(key);
            args.setRecords(records);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyRecords", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyRecords()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyRecords_result result = new maxKeyRecords_result();
            receiveBase(result, "maxKeyRecords");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyRecords failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyRecordsTime(
                java.lang.String key, java.util.List records,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyRecordsTime(key, records, timestamp, creds, transaction,
                    environment);
            return recv_maxKeyRecordsTime();
        }

        public void send_maxKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyRecordsTime_args args = new maxKeyRecordsTime_args();
            args.setKey(key);
            args.setRecords(records);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyRecordsTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyRecordsTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyRecordsTime_result result = new maxKeyRecordsTime_result();
            receiveBase(result, "maxKeyRecordsTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyRecordsTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyRecordsTimestr(
                java.lang.String key, java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyRecordsTimestr(key, records, timestamp, creds,
                    transaction, environment);
            return recv_maxKeyRecordsTimestr();
        }

        public void send_maxKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyRecordsTimestr_args args = new maxKeyRecordsTimestr_args();
            args.setKey(key);
            args.setRecords(records);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyRecordsTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyRecordsTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyRecordsTimestr_result result = new maxKeyRecordsTimestr_result();
            receiveBase(result, "maxKeyRecordsTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyRecordsTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyCriteria(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyCriteria(key, criteria, creds, transaction, environment);
            return recv_maxKeyCriteria();
        }

        public void send_maxKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyCriteria_args args = new maxKeyCriteria_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyCriteria", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyCriteria()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyCriteria_result result = new maxKeyCriteria_result();
            receiveBase(result, "maxKeyCriteria");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyCriteria failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyCriteriaTime(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyCriteriaTime(key, criteria, timestamp, creds,
                    transaction, environment);
            return recv_maxKeyCriteriaTime();
        }

        public void send_maxKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyCriteriaTime_args args = new maxKeyCriteriaTime_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyCriteriaTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyCriteriaTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyCriteriaTime_result result = new maxKeyCriteriaTime_result();
            receiveBase(result, "maxKeyCriteriaTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyCriteriaTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyCriteriaTimestr(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyCriteriaTimestr(key, criteria, timestamp, creds,
                    transaction, environment);
            return recv_maxKeyCriteriaTimestr();
        }

        public void send_maxKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyCriteriaTimestr_args args = new maxKeyCriteriaTimestr_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyCriteriaTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyCriteriaTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyCriteriaTimestr_result result = new maxKeyCriteriaTimestr_result();
            receiveBase(result, "maxKeyCriteriaTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyCriteriaTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyCcl(
                java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyCcl(key, ccl, creds, transaction, environment);
            return recv_maxKeyCcl();
        }

        public void send_maxKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyCcl_args args = new maxKeyCcl_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyCcl", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyCcl()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyCcl_result result = new maxKeyCcl_result();
            receiveBase(result, "maxKeyCcl");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyCcl failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyCclTime(
                java.lang.String key, java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyCclTime(key, ccl, timestamp, creds, transaction,
                    environment);
            return recv_maxKeyCclTime();
        }

        public void send_maxKeyCclTime(java.lang.String key,
                java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyCclTime_args args = new maxKeyCclTime_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyCclTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyCclTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyCclTime_result result = new maxKeyCclTime_result();
            receiveBase(result, "maxKeyCclTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyCclTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyCclTimestr(
                java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyCclTimestr(key, ccl, timestamp, creds, transaction,
                    environment);
            return recv_maxKeyCclTimestr();
        }

        public void send_maxKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyCclTimestr_args args = new maxKeyCclTimestr_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyCclTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyCclTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyCclTimestr_result result = new maxKeyCclTimestr_result();
            receiveBase(result, "maxKeyCclTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyCclTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKey(
                java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKey(key, creds, transaction, environment);
            return recv_maxKey();
        }

        public void send_maxKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKey_args args = new maxKey_args();
            args.setKey(key);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKey", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKey()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKey_result result = new maxKey_result();
            receiveBase(result, "maxKey");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKey failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyTime(
                java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyTime(key, timestamp, creds, transaction, environment);
            return recv_maxKeyTime();
        }

        public void send_maxKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyTime_args args = new maxKeyTime_args();
            args.setKey(key);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyTime_result result = new maxKeyTime_result();
            receiveBase(result, "maxKeyTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject maxKeyTimestr(
                java.lang.String key, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_maxKeyTimestr(key, timestamp, creds, transaction, environment);
            return recv_maxKeyTimestr();
        }

        public void send_maxKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            maxKeyTimestr_args args = new maxKeyTimestr_args();
            args.setKey(key);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("maxKeyTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_maxKeyTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            maxKeyTimestr_result result = new maxKeyTimestr_result();
            receiveBase(result, "maxKeyTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "maxKeyTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyRecord(
                java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyRecord(key, record, creds, transaction, environment);
            return recv_minKeyRecord();
        }

        public void send_minKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyRecord_args args = new minKeyRecord_args();
            args.setKey(key);
            args.setRecord(record);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyRecord", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyRecord()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyRecord_result result = new minKeyRecord_result();
            receiveBase(result, "minKeyRecord");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyRecord failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyRecordTime(
                java.lang.String key, long record, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyRecordTime(key, record, timestamp, creds, transaction,
                    environment);
            return recv_minKeyRecordTime();
        }

        public void send_minKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyRecordTime_args args = new minKeyRecordTime_args();
            args.setKey(key);
            args.setRecord(record);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyRecordTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyRecordTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyRecordTime_result result = new minKeyRecordTime_result();
            receiveBase(result, "minKeyRecordTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyRecordTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyRecordTimestr(
                java.lang.String key, long record, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyRecordTimestr(key, record, timestamp, creds, transaction,
                    environment);
            return recv_minKeyRecordTimestr();
        }

        public void send_minKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyRecordTimestr_args args = new minKeyRecordTimestr_args();
            args.setKey(key);
            args.setRecord(record);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyRecordTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyRecordTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyRecordTimestr_result result = new minKeyRecordTimestr_result();
            receiveBase(result, "minKeyRecordTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyRecordTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKey(
                java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKey(key, creds, transaction, environment);
            return recv_minKey();
        }

        public void send_minKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKey_args args = new minKey_args();
            args.setKey(key);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKey", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKey()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKey_result result = new minKey_result();
            receiveBase(result, "minKey");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKey failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyRecordsTime(
                java.lang.String key, java.util.List records,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyRecordsTime(key, records, timestamp, creds, transaction,
                    environment);
            return recv_minKeyRecordsTime();
        }

        public void send_minKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyRecordsTime_args args = new minKeyRecordsTime_args();
            args.setKey(key);
            args.setRecords(records);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyRecordsTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyRecordsTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyRecordsTime_result result = new minKeyRecordsTime_result();
            receiveBase(result, "minKeyRecordsTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyRecordsTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyRecordsTimestr(
                java.lang.String key, java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyRecordsTimestr(key, records, timestamp, creds,
                    transaction, environment);
            return recv_minKeyRecordsTimestr();
        }

        public void send_minKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyRecordsTimestr_args args = new minKeyRecordsTimestr_args();
            args.setKey(key);
            args.setRecords(records);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyRecordsTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyRecordsTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyRecordsTimestr_result result = new minKeyRecordsTimestr_result();
            receiveBase(result, "minKeyRecordsTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyRecordsTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyCriteria(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyCriteria(key, criteria, creds, transaction, environment);
            return recv_minKeyCriteria();
        }

        public void send_minKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyCriteria_args args = new minKeyCriteria_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyCriteria", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyCriteria()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyCriteria_result result = new minKeyCriteria_result();
            receiveBase(result, "minKeyCriteria");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyCriteria failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyCriteriaTime(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyCriteriaTime(key, criteria, timestamp, creds,
                    transaction, environment);
            return recv_minKeyCriteriaTime();
        }

        public void send_minKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyCriteriaTime_args args = new minKeyCriteriaTime_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyCriteriaTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyCriteriaTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyCriteriaTime_result result = new minKeyCriteriaTime_result();
            receiveBase(result, "minKeyCriteriaTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyCriteriaTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyCriteriaTimestr(
                java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyCriteriaTimestr(key, criteria, timestamp, creds,
                    transaction, environment);
            return recv_minKeyCriteriaTimestr();
        }

        public void send_minKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyCriteriaTimestr_args args = new minKeyCriteriaTimestr_args();
            args.setKey(key);
            args.setCriteria(criteria);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyCriteriaTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyCriteriaTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyCriteriaTimestr_result result = new minKeyCriteriaTimestr_result();
            receiveBase(result, "minKeyCriteriaTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyCriteriaTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyCcl(
                java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyCcl(key, ccl, creds, transaction, environment);
            return recv_minKeyCcl();
        }

        public void send_minKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyCcl_args args = new minKeyCcl_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyCcl", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyCcl()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyCcl_result result = new minKeyCcl_result();
            receiveBase(result, "minKeyCcl");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyCcl failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyCclTime(
                java.lang.String key, java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyCclTime(key, ccl, timestamp, creds, transaction,
                    environment);
            return recv_minKeyCclTime();
        }

        public void send_minKeyCclTime(java.lang.String key,
                java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyCclTime_args args = new minKeyCclTime_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyCclTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyCclTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyCclTime_result result = new minKeyCclTime_result();
            receiveBase(result, "minKeyCclTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyCclTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyCclTimestr(
                java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyCclTimestr(key, ccl, timestamp, creds, transaction,
                    environment);
            return recv_minKeyCclTimestr();
        }

        public void send_minKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyCclTimestr_args args = new minKeyCclTimestr_args();
            args.setKey(key);
            args.setCcl(ccl);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyCclTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyCclTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyCclTimestr_result result = new minKeyCclTimestr_result();
            receiveBase(result, "minKeyCclTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyCclTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyTime(
                java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyTime(key, timestamp, creds, transaction, environment);
            return recv_minKeyTime();
        }

        public void send_minKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyTime_args args = new minKeyTime_args();
            args.setKey(key);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyTime", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyTime()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyTime_result result = new minKeyTime_result();
            receiveBase(result, "minKeyTime");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyTime failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyTimestr(
                java.lang.String key, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyTimestr(key, timestamp, creds, transaction, environment);
            return recv_minKeyTimestr();
        }

        public void send_minKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyTimestr_args args = new minKeyTimestr_args();
            args.setKey(key);
            args.setTimestamp(timestamp);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyTimestr", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyTimestr()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.ParseException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyTimestr_result result = new minKeyTimestr_result();
            receiveBase(result, "minKeyTimestr");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            if(result.ex5 != null) {
                throw result.ex5;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyTimestr failed: unknown result");
        }

        public com.cinchapi.concourse.thrift.TObject minKeyRecords(
                java.lang.String key, java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            send_minKeyRecords(key, records, creds, transaction, environment);
            return recv_minKeyRecords();
        }

        public void send_minKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment)
                throws org.apache.thrift.TException {
            minKeyRecords_args args = new minKeyRecords_args();
            args.setKey(key);
            args.setRecords(records);
            args.setCreds(creds);
            args.setTransaction(transaction);
            args.setEnvironment(environment);
            sendBase("minKeyRecords", args);
        }

        public com.cinchapi.concourse.thrift.TObject recv_minKeyRecords()
                throws com.cinchapi.concourse.thrift.SecurityException,
                com.cinchapi.concourse.thrift.TransactionException,
                com.cinchapi.concourse.thrift.PermissionException,
                com.cinchapi.concourse.thrift.InvalidOperationException,
                org.apache.thrift.TException {
            minKeyRecords_result result = new minKeyRecords_result();
            receiveBase(result, "minKeyRecords");
            if(result.isSetSuccess()) {
                return result.success;
            }
            if(result.ex != null) {
                throw result.ex;
            }
            if(result.ex2 != null) {
                throw result.ex2;
            }
            if(result.ex3 != null) {
                throw result.ex3;
            }
            if(result.ex4 != null) {
                throw result.ex4;
            }
            throw new org.apache.thrift.TApplicationException(
                    org.apache.thrift.TApplicationException.MISSING_RESULT,
                    "minKeyRecords failed: unknown result");
        }

    }

    public static class AsyncClient extends org.apache.thrift.async.TAsyncClient
            implements AsyncIface {
        public static class Factory implements
                org.apache.thrift.async.TAsyncClientFactory {
            private org.apache.thrift.async.TAsyncClientManager clientManager;
            private org.apache.thrift.protocol.TProtocolFactory protocolFactory;

            public Factory(
                    org.apache.thrift.async.TAsyncClientManager clientManager,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory) {
                this.clientManager = clientManager;
                this.protocolFactory = protocolFactory;
            }

            public AsyncClient getAsyncClient(
                    org.apache.thrift.transport.TNonblockingTransport transport) {
                return new AsyncClient(protocolFactory, clientManager,
                        transport);
            }
        }

        public AsyncClient(
                org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                org.apache.thrift.async.TAsyncClientManager clientManager,
                org.apache.thrift.transport.TNonblockingTransport transport) {
            super(protocolFactory, clientManager, transport);
        }

        public void sumKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyRecord_call method_call = new sumKeyRecord_call(key, record,
                    creds, transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyRecord_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyRecord_call(java.lang.String key, long record,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyRecord",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyRecord_args args = new sumKeyRecord_args();
                args.setKey(key);
                args.setRecord(record);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyRecord();
            }
        }

        public void sumKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyRecordTime_call method_call = new sumKeyRecordTime_call(key,
                    record, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyRecordTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyRecordTime_call(java.lang.String key, long record,
                    long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyRecordTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyRecordTime_args args = new sumKeyRecordTime_args();
                args.setKey(key);
                args.setRecord(record);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyRecordTime();
            }
        }

        public void sumKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyRecordTimestr_call method_call = new sumKeyRecordTimestr_call(
                    key, record, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyRecordTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyRecordTimestr_call(java.lang.String key, long record,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyRecordTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyRecordTimestr_args args = new sumKeyRecordTimestr_args();
                args.setKey(key);
                args.setRecord(record);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyRecordTimestr();
            }
        }

        public void sumKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyRecords_call method_call = new sumKeyRecords_call(key,
                    records, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyRecords_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyRecords_call(java.lang.String key,
                    java.util.List records,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyRecords",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyRecords_args args = new sumKeyRecords_args();
                args.setKey(key);
                args.setRecords(records);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyRecords();
            }
        }

        public void sumKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyRecordsTime_call method_call = new sumKeyRecordsTime_call(key,
                    records, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyRecordsTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyRecordsTime_call(java.lang.String key,
                    java.util.List records, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyRecordsTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyRecordsTime_args args = new sumKeyRecordsTime_args();
                args.setKey(key);
                args.setRecords(records);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyRecordsTime();
            }
        }

        public void sumKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyRecordsTimestr_call method_call = new sumKeyRecordsTimestr_call(
                    key, records, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyRecordsTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyRecordsTimestr_call(java.lang.String key,
                    java.util.List records,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyRecordsTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyRecordsTimestr_args args = new sumKeyRecordsTimestr_args();
                args.setKey(key);
                args.setRecords(records);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyRecordsTimestr();
            }
        }

        public void sumKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKey_call method_call = new sumKey_call(key, creds, transaction,
                    environment, resultHandler, this, ___protocolFactory,
                    ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKey_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKey_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKey", org.apache.thrift.protocol.TMessageType.CALL,
                        0));
                sumKey_args args = new sumKey_args();
                args.setKey(key);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKey();
            }
        }

        public void sumKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyTime_call method_call = new sumKeyTime_call(key, timestamp,
                    creds, transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyTime_call(java.lang.String key, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyTime_args args = new sumKeyTime_args();
                args.setKey(key);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyTime();
            }
        }

        public void sumKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyTimestr_call method_call = new sumKeyTimestr_call(key,
                    timestamp, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyTimestr_call(java.lang.String key,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyTimestr_args args = new sumKeyTimestr_args();
                args.setKey(key);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyTimestr();
            }
        }

        public void sumKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyCriteria_call method_call = new sumKeyCriteria_call(key,
                    criteria, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyCriteria_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyCriteria_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyCriteria",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyCriteria_args args = new sumKeyCriteria_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyCriteria();
            }
        }

        public void sumKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyCriteriaTime_call method_call = new sumKeyCriteriaTime_call(
                    key, criteria, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyCriteriaTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyCriteriaTime_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyCriteriaTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyCriteriaTime_args args = new sumKeyCriteriaTime_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyCriteriaTime();
            }
        }

        public void sumKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyCriteriaTimestr_call method_call = new sumKeyCriteriaTimestr_call(
                    key, criteria, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyCriteriaTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyCriteriaTimestr_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyCriteriaTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyCriteriaTimestr_args args = new sumKeyCriteriaTimestr_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyCriteriaTimestr();
            }
        }

        public void sumKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyCcl_call method_call = new sumKeyCcl_call(key, ccl, creds,
                    transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyCcl_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyCcl_call(java.lang.String key, java.lang.String ccl,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyCcl",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyCcl_args args = new sumKeyCcl_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyCcl();
            }
        }

        public void sumKeyCclTime(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyCclTime_call method_call = new sumKeyCclTime_call(key, ccl,
                    timestamp, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyCclTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyCclTime_call(java.lang.String key,
                    java.lang.String ccl, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyCclTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyCclTime_args args = new sumKeyCclTime_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyCclTime();
            }
        }

        public void sumKeyCclTimestr(java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            sumKeyCclTimestr_call method_call = new sumKeyCclTimestr_call(key,
                    ccl, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class sumKeyCclTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public sumKeyCclTimestr_call(java.lang.String key,
                    java.lang.String ccl, java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "sumKeyCclTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                sumKeyCclTimestr_args args = new sumKeyCclTimestr_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_sumKeyCclTimestr();
            }
        }

        public void averageKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyRecord_call method_call = new averageKeyRecord_call(key,
                    record, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyRecord_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyRecord_call(java.lang.String key, long record,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyRecord",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyRecord_args args = new averageKeyRecord_args();
                args.setKey(key);
                args.setRecord(record);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyRecord();
            }
        }

        public void averageKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyRecordTime_call method_call = new averageKeyRecordTime_call(
                    key, record, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyRecordTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyRecordTime_call(java.lang.String key, long record,
                    long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyRecordTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyRecordTime_args args = new averageKeyRecordTime_args();
                args.setKey(key);
                args.setRecord(record);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyRecordTime();
            }
        }

        public void averageKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyRecordTimestr_call method_call = new averageKeyRecordTimestr_call(
                    key, record, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyRecordTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyRecordTimestr_call(java.lang.String key,
                    long record, java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyRecordTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyRecordTimestr_args args = new averageKeyRecordTimestr_args();
                args.setKey(key);
                args.setRecord(record);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyRecordTimestr();
            }
        }

        public void averageKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyRecords_call method_call = new averageKeyRecords_call(key,
                    records, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyRecords_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyRecords_call(java.lang.String key,
                    java.util.List records,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyRecords",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyRecords_args args = new averageKeyRecords_args();
                args.setKey(key);
                args.setRecords(records);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyRecords();
            }
        }

        public void averageKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyRecordsTime_call method_call = new averageKeyRecordsTime_call(
                    key, records, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyRecordsTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyRecordsTime_call(java.lang.String key,
                    java.util.List records, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyRecordsTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyRecordsTime_args args = new averageKeyRecordsTime_args();
                args.setKey(key);
                args.setRecords(records);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyRecordsTime();
            }
        }

        public void averageKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyRecordsTimestr_call method_call = new averageKeyRecordsTimestr_call(
                    key, records, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyRecordsTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyRecordsTimestr_call(java.lang.String key,
                    java.util.List records,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyRecordsTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyRecordsTimestr_args args = new averageKeyRecordsTimestr_args();
                args.setKey(key);
                args.setRecords(records);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyRecordsTimestr();
            }
        }

        public void averageKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKey_call method_call = new averageKey_call(key, creds,
                    transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKey_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKey_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKey",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKey_args args = new averageKey_args();
                args.setKey(key);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKey();
            }
        }

        public void averageKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyTime_call method_call = new averageKeyTime_call(key,
                    timestamp, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyTime_call(java.lang.String key, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyTime_args args = new averageKeyTime_args();
                args.setKey(key);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyTime();
            }
        }

        public void averageKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyTimestr_call method_call = new averageKeyTimestr_call(key,
                    timestamp, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyTimestr_call(java.lang.String key,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyTimestr_args args = new averageKeyTimestr_args();
                args.setKey(key);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyTimestr();
            }
        }

        public void averageKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyCriteria_call method_call = new averageKeyCriteria_call(
                    key, criteria, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyCriteria_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyCriteria_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyCriteria",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyCriteria_args args = new averageKeyCriteria_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyCriteria();
            }
        }

        public void averageKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyCriteriaTime_call method_call = new averageKeyCriteriaTime_call(
                    key, criteria, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyCriteriaTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyCriteriaTime_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyCriteriaTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyCriteriaTime_args args = new averageKeyCriteriaTime_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyCriteriaTime();
            }
        }

        public void averageKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyCriteriaTimestr_call method_call = new averageKeyCriteriaTimestr_call(
                    key, criteria, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyCriteriaTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyCriteriaTimestr_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyCriteriaTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyCriteriaTimestr_args args = new averageKeyCriteriaTimestr_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyCriteriaTimestr();
            }
        }

        public void averageKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyCcl_call method_call = new averageKeyCcl_call(key, ccl,
                    creds, transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyCcl_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyCcl_call(java.lang.String key,
                    java.lang.String ccl,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyCcl",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyCcl_args args = new averageKeyCcl_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyCcl();
            }
        }

        public void averageKeyCclTime(java.lang.String key,
                java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyCclTime_call method_call = new averageKeyCclTime_call(key,
                    ccl, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyCclTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyCclTime_call(java.lang.String key,
                    java.lang.String ccl, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyCclTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyCclTime_args args = new averageKeyCclTime_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyCclTime();
            }
        }

        public void averageKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            averageKeyCclTimestr_call method_call = new averageKeyCclTimestr_call(
                    key, ccl, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class averageKeyCclTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public averageKeyCclTimestr_call(java.lang.String key,
                    java.lang.String ccl, java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "averageKeyCclTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                averageKeyCclTimestr_args args = new averageKeyCclTimestr_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_averageKeyCclTimestr();
            }
        }

        public void countKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyRecord_call method_call = new countKeyRecord_call(key,
                    record, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyRecord_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyRecord_call(java.lang.String key, long record,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyRecord",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyRecord_args args = new countKeyRecord_args();
                args.setKey(key);
                args.setRecord(record);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyRecord();
            }
        }

        public void countKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyRecordTime_call method_call = new countKeyRecordTime_call(
                    key, record, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyRecordTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyRecordTime_call(java.lang.String key, long record,
                    long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyRecordTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyRecordTime_args args = new countKeyRecordTime_args();
                args.setKey(key);
                args.setRecord(record);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyRecordTime();
            }
        }

        public void countKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyRecordTimestr_call method_call = new countKeyRecordTimestr_call(
                    key, record, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyRecordTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyRecordTimestr_call(java.lang.String key, long record,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyRecordTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyRecordTimestr_args args = new countKeyRecordTimestr_args();
                args.setKey(key);
                args.setRecord(record);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyRecordTimestr();
            }
        }

        public void countKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyRecords_call method_call = new countKeyRecords_call(key,
                    records, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyRecords_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyRecords_call(java.lang.String key,
                    java.util.List records,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyRecords",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyRecords_args args = new countKeyRecords_args();
                args.setKey(key);
                args.setRecords(records);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyRecords();
            }
        }

        public void countKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyRecordsTime_call method_call = new countKeyRecordsTime_call(
                    key, records, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyRecordsTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyRecordsTime_call(java.lang.String key,
                    java.util.List records, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyRecordsTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyRecordsTime_args args = new countKeyRecordsTime_args();
                args.setKey(key);
                args.setRecords(records);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyRecordsTime();
            }
        }

        public void countKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyRecordsTimestr_call method_call = new countKeyRecordsTimestr_call(
                    key, records, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyRecordsTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyRecordsTimestr_call(java.lang.String key,
                    java.util.List records,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyRecordsTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyRecordsTimestr_args args = new countKeyRecordsTimestr_args();
                args.setKey(key);
                args.setRecords(records);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyRecordsTimestr();
            }
        }

        public void countKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKey_call method_call = new countKey_call(key, creds,
                    transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKey_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKey_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKey",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKey_args args = new countKey_args();
                args.setKey(key);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKey();
            }
        }

        public void countKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyTime_call method_call = new countKeyTime_call(key,
                    timestamp, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyTime_call(java.lang.String key, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyTime_args args = new countKeyTime_args();
                args.setKey(key);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyTime();
            }
        }

        public void countKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyTimestr_call method_call = new countKeyTimestr_call(key,
                    timestamp, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyTimestr_call(java.lang.String key,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyTimestr_args args = new countKeyTimestr_args();
                args.setKey(key);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyTimestr();
            }
        }

        public void countKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyCriteria_call method_call = new countKeyCriteria_call(key,
                    criteria, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyCriteria_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyCriteria_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyCriteria",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyCriteria_args args = new countKeyCriteria_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyCriteria();
            }
        }

        public void countKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyCriteriaTime_call method_call = new countKeyCriteriaTime_call(
                    key, criteria, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyCriteriaTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyCriteriaTime_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyCriteriaTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyCriteriaTime_args args = new countKeyCriteriaTime_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyCriteriaTime();
            }
        }

        public void countKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyCriteriaTimestr_call method_call = new countKeyCriteriaTimestr_call(
                    key, criteria, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyCriteriaTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyCriteriaTimestr_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyCriteriaTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyCriteriaTimestr_args args = new countKeyCriteriaTimestr_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyCriteriaTimestr();
            }
        }

        public void countKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyCcl_call method_call = new countKeyCcl_call(key, ccl, creds,
                    transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyCcl_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyCcl_call(java.lang.String key, java.lang.String ccl,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyCcl",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyCcl_args args = new countKeyCcl_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyCcl();
            }
        }

        public void countKeyCclTime(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyCclTime_call method_call = new countKeyCclTime_call(key,
                    ccl, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyCclTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyCclTime_call(java.lang.String key,
                    java.lang.String ccl, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyCclTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyCclTime_args args = new countKeyCclTime_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyCclTime();
            }
        }

        public void countKeyCclTimestr(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            countKeyCclTimestr_call method_call = new countKeyCclTimestr_call(
                    key, ccl, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class countKeyCclTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public countKeyCclTimestr_call(java.lang.String key,
                    java.lang.String ccl, java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "countKeyCclTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                countKeyCclTimestr_args args = new countKeyCclTimestr_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public java.lang.Long getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_countKeyCclTimestr();
            }
        }

        public void maxKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyRecord_call method_call = new maxKeyRecord_call(key, record,
                    creds, transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyRecord_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyRecord_call(java.lang.String key, long record,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyRecord",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyRecord_args args = new maxKeyRecord_args();
                args.setKey(key);
                args.setRecord(record);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyRecord();
            }
        }

        public void maxKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyRecordTime_call method_call = new maxKeyRecordTime_call(key,
                    record, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyRecordTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyRecordTime_call(java.lang.String key, long record,
                    long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyRecordTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyRecordTime_args args = new maxKeyRecordTime_args();
                args.setKey(key);
                args.setRecord(record);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyRecordTime();
            }
        }

        public void maxKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyRecordTimestr_call method_call = new maxKeyRecordTimestr_call(
                    key, record, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyRecordTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyRecordTimestr_call(java.lang.String key, long record,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyRecordTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyRecordTimestr_args args = new maxKeyRecordTimestr_args();
                args.setKey(key);
                args.setRecord(record);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyRecordTimestr();
            }
        }

        public void maxKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyRecords_call method_call = new maxKeyRecords_call(key,
                    records, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyRecords_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyRecords_call(java.lang.String key,
                    java.util.List records,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyRecords",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyRecords_args args = new maxKeyRecords_args();
                args.setKey(key);
                args.setRecords(records);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyRecords();
            }
        }

        public void maxKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyRecordsTime_call method_call = new maxKeyRecordsTime_call(key,
                    records, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyRecordsTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyRecordsTime_call(java.lang.String key,
                    java.util.List records, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyRecordsTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyRecordsTime_args args = new maxKeyRecordsTime_args();
                args.setKey(key);
                args.setRecords(records);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyRecordsTime();
            }
        }

        public void maxKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyRecordsTimestr_call method_call = new maxKeyRecordsTimestr_call(
                    key, records, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyRecordsTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyRecordsTimestr_call(java.lang.String key,
                    java.util.List records,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyRecordsTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyRecordsTimestr_args args = new maxKeyRecordsTimestr_args();
                args.setKey(key);
                args.setRecords(records);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyRecordsTimestr();
            }
        }

        public void maxKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyCriteria_call method_call = new maxKeyCriteria_call(key,
                    criteria, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyCriteria_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyCriteria_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyCriteria",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyCriteria_args args = new maxKeyCriteria_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyCriteria();
            }
        }

        public void maxKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyCriteriaTime_call method_call = new maxKeyCriteriaTime_call(
                    key, criteria, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyCriteriaTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyCriteriaTime_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyCriteriaTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyCriteriaTime_args args = new maxKeyCriteriaTime_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyCriteriaTime();
            }
        }

        public void maxKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyCriteriaTimestr_call method_call = new maxKeyCriteriaTimestr_call(
                    key, criteria, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyCriteriaTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyCriteriaTimestr_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyCriteriaTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyCriteriaTimestr_args args = new maxKeyCriteriaTimestr_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyCriteriaTimestr();
            }
        }

        public void maxKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyCcl_call method_call = new maxKeyCcl_call(key, ccl, creds,
                    transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyCcl_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyCcl_call(java.lang.String key, java.lang.String ccl,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyCcl",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyCcl_args args = new maxKeyCcl_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyCcl();
            }
        }

        public void maxKeyCclTime(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyCclTime_call method_call = new maxKeyCclTime_call(key, ccl,
                    timestamp, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyCclTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyCclTime_call(java.lang.String key,
                    java.lang.String ccl, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyCclTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyCclTime_args args = new maxKeyCclTime_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyCclTime();
            }
        }

        public void maxKeyCclTimestr(java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyCclTimestr_call method_call = new maxKeyCclTimestr_call(key,
                    ccl, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyCclTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyCclTimestr_call(java.lang.String key,
                    java.lang.String ccl, java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyCclTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyCclTimestr_args args = new maxKeyCclTimestr_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyCclTimestr();
            }
        }

        public void maxKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKey_call method_call = new maxKey_call(key, creds, transaction,
                    environment, resultHandler, this, ___protocolFactory,
                    ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKey_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKey_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKey", org.apache.thrift.protocol.TMessageType.CALL,
                        0));
                maxKey_args args = new maxKey_args();
                args.setKey(key);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKey();
            }
        }

        public void maxKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyTime_call method_call = new maxKeyTime_call(key, timestamp,
                    creds, transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyTime_call(java.lang.String key, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyTime_args args = new maxKeyTime_args();
                args.setKey(key);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyTime();
            }
        }

        public void maxKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            maxKeyTimestr_call method_call = new maxKeyTimestr_call(key,
                    timestamp, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class maxKeyTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public maxKeyTimestr_call(java.lang.String key,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "maxKeyTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                maxKeyTimestr_args args = new maxKeyTimestr_args();
                args.setKey(key);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_maxKeyTimestr();
            }
        }

        public void minKeyRecord(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyRecord_call method_call = new minKeyRecord_call(key, record,
                    creds, transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyRecord_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyRecord_call(java.lang.String key, long record,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyRecord",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyRecord_args args = new minKeyRecord_args();
                args.setKey(key);
                args.setRecord(record);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyRecord();
            }
        }

        public void minKeyRecordTime(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyRecordTime_call method_call = new minKeyRecordTime_call(key,
                    record, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyRecordTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyRecordTime_call(java.lang.String key, long record,
                    long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyRecordTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyRecordTime_args args = new minKeyRecordTime_args();
                args.setKey(key);
                args.setRecord(record);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyRecordTime();
            }
        }

        public void minKeyRecordTimestr(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyRecordTimestr_call method_call = new minKeyRecordTimestr_call(
                    key, record, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyRecordTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long record;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyRecordTimestr_call(java.lang.String key, long record,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.record = record;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyRecordTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyRecordTimestr_args args = new minKeyRecordTimestr_args();
                args.setKey(key);
                args.setRecord(record);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyRecordTimestr();
            }
        }

        public void minKey(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKey_call method_call = new minKey_call(key, creds, transaction,
                    environment, resultHandler, this, ___protocolFactory,
                    ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKey_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKey_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKey", org.apache.thrift.protocol.TMessageType.CALL,
                        0));
                minKey_args args = new minKey_args();
                args.setKey(key);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKey();
            }
        }

        public void minKeyRecordsTime(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyRecordsTime_call method_call = new minKeyRecordsTime_call(key,
                    records, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyRecordsTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyRecordsTime_call(java.lang.String key,
                    java.util.List records, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyRecordsTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyRecordsTime_args args = new minKeyRecordsTime_args();
                args.setKey(key);
                args.setRecords(records);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyRecordsTime();
            }
        }

        public void minKeyRecordsTimestr(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyRecordsTimestr_call method_call = new minKeyRecordsTimestr_call(
                    key, records, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyRecordsTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyRecordsTimestr_call(java.lang.String key,
                    java.util.List records,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyRecordsTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyRecordsTimestr_args args = new minKeyRecordsTimestr_args();
                args.setKey(key);
                args.setRecords(records);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyRecordsTimestr();
            }
        }

        public void minKeyCriteria(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyCriteria_call method_call = new minKeyCriteria_call(key,
                    criteria, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyCriteria_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyCriteria_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyCriteria",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyCriteria_args args = new minKeyCriteria_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyCriteria();
            }
        }

        public void minKeyCriteriaTime(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyCriteriaTime_call method_call = new minKeyCriteriaTime_call(
                    key, criteria, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyCriteriaTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyCriteriaTime_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyCriteriaTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyCriteriaTime_args args = new minKeyCriteriaTime_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyCriteriaTime();
            }
        }

        public void minKeyCriteriaTimestr(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyCriteriaTimestr_call method_call = new minKeyCriteriaTimestr_call(
                    key, criteria, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyCriteriaTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private com.cinchapi.concourse.thrift.TCriteria criteria;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyCriteriaTimestr_call(java.lang.String key,
                    com.cinchapi.concourse.thrift.TCriteria criteria,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.criteria = criteria;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyCriteriaTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyCriteriaTimestr_args args = new minKeyCriteriaTimestr_args();
                args.setKey(key);
                args.setCriteria(criteria);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyCriteriaTimestr();
            }
        }

        public void minKeyCcl(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyCcl_call method_call = new minKeyCcl_call(key, ccl, creds,
                    transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyCcl_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyCcl_call(java.lang.String key, java.lang.String ccl,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyCcl",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyCcl_args args = new minKeyCcl_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyCcl();
            }
        }

        public void minKeyCclTime(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyCclTime_call method_call = new minKeyCclTime_call(key, ccl,
                    timestamp, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyCclTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyCclTime_call(java.lang.String key,
                    java.lang.String ccl, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyCclTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyCclTime_args args = new minKeyCclTime_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyCclTime();
            }
        }

        public void minKeyCclTimestr(java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyCclTimestr_call method_call = new minKeyCclTimestr_call(key,
                    ccl, timestamp, creds, transaction, environment,
                    resultHandler, this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyCclTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String ccl;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyCclTimestr_call(java.lang.String key,
                    java.lang.String ccl, java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.ccl = ccl;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyCclTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyCclTimestr_args args = new minKeyCclTimestr_args();
                args.setKey(key);
                args.setCcl(ccl);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyCclTimestr();
            }
        }

        public void minKeyTime(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyTime_call method_call = new minKeyTime_call(key, timestamp,
                    creds, transaction, environment, resultHandler, this,
                    ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyTime_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private long timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyTime_call(java.lang.String key, long timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyTime",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyTime_args args = new minKeyTime_args();
                args.setKey(key);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyTime();
            }
        }

        public void minKeyTimestr(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyTimestr_call method_call = new minKeyTimestr_call(key,
                    timestamp, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyTimestr_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.lang.String timestamp;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyTimestr_call(java.lang.String key,
                    java.lang.String timestamp,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.timestamp = timestamp;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyTimestr",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyTimestr_args args = new minKeyTimestr_args();
                args.setKey(key);
                args.setTimestamp(timestamp);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.ParseException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyTimestr();
            }
        }

        public void minKeyRecords(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment,
                org.apache.thrift.async.AsyncMethodCallback resultHandler)
                throws org.apache.thrift.TException {
            checkReady();
            minKeyRecords_call method_call = new minKeyRecords_call(key,
                    records, creds, transaction, environment, resultHandler,
                    this, ___protocolFactory, ___transport);
            this.___currentMethod = method_call;
            ___manager.call(method_call);
        }

        public static class minKeyRecords_call extends
                org.apache.thrift.async.TAsyncMethodCall {
            private java.lang.String key;
            private java.util.List records;
            private com.cinchapi.concourse.thrift.AccessToken creds;
            private com.cinchapi.concourse.thrift.TransactionToken transaction;
            private java.lang.String environment;

            public minKeyRecords_call(java.lang.String key,
                    java.util.List records,
                    com.cinchapi.concourse.thrift.AccessToken creds,
                    com.cinchapi.concourse.thrift.TransactionToken transaction,
                    java.lang.String environment,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler,
                    org.apache.thrift.async.TAsyncClient client,
                    org.apache.thrift.protocol.TProtocolFactory protocolFactory,
                    org.apache.thrift.transport.TNonblockingTransport transport)
                    throws org.apache.thrift.TException {
                super(client, protocolFactory, transport, resultHandler, false);
                this.key = key;
                this.records = records;
                this.creds = creds;
                this.transaction = transaction;
                this.environment = environment;
            }

            public void write_args(org.apache.thrift.protocol.TProtocol prot)
                    throws org.apache.thrift.TException {
                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage(
                        "minKeyRecords",
                        org.apache.thrift.protocol.TMessageType.CALL, 0));
                minKeyRecords_args args = new minKeyRecords_args();
                args.setKey(key);
                args.setRecords(records);
                args.setCreds(creds);
                args.setTransaction(transaction);
                args.setEnvironment(environment);
                args.write(prot);
                prot.writeMessageEnd();
            }

            public com.cinchapi.concourse.thrift.TObject getResult()
                    throws com.cinchapi.concourse.thrift.SecurityException,
                    com.cinchapi.concourse.thrift.TransactionException,
                    com.cinchapi.concourse.thrift.PermissionException,
                    com.cinchapi.concourse.thrift.InvalidOperationException,
                    org.apache.thrift.TException {
                if(getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
                    throw new java.lang.IllegalStateException(
                            "Method call not finished!");
                }
                org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(
                        getFrameBuffer().array());
                org.apache.thrift.protocol.TProtocol prot = client
                        .getProtocolFactory().getProtocol(memoryTransport);
                return (new Client(prot)).recv_minKeyRecords();
            }
        }

    }

    public static class Processor
            extends org.apache.thrift.TBaseProcessor
            implements org.apache.thrift.TProcessor {
        private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory
                .getLogger(Processor.class.getName());

        public Processor(I iface) {
            super(iface, getProcessMap(
                    new java.util.LinkedHashMap>()));
        }

        protected Processor(I iface,
                java.util.Map> processMap) {
            super(iface, getProcessMap(processMap));
        }

        private static  java.util.Map> getProcessMap(
                java.util.Map> processMap) {
            processMap.put("sumKeyRecord", new sumKeyRecord());
            processMap.put("sumKeyRecordTime", new sumKeyRecordTime());
            processMap.put("sumKeyRecordTimestr", new sumKeyRecordTimestr());
            processMap.put("sumKeyRecords", new sumKeyRecords());
            processMap.put("sumKeyRecordsTime", new sumKeyRecordsTime());
            processMap.put("sumKeyRecordsTimestr", new sumKeyRecordsTimestr());
            processMap.put("sumKey", new sumKey());
            processMap.put("sumKeyTime", new sumKeyTime());
            processMap.put("sumKeyTimestr", new sumKeyTimestr());
            processMap.put("sumKeyCriteria", new sumKeyCriteria());
            processMap.put("sumKeyCriteriaTime", new sumKeyCriteriaTime());
            processMap.put("sumKeyCriteriaTimestr",
                    new sumKeyCriteriaTimestr());
            processMap.put("sumKeyCcl", new sumKeyCcl());
            processMap.put("sumKeyCclTime", new sumKeyCclTime());
            processMap.put("sumKeyCclTimestr", new sumKeyCclTimestr());
            processMap.put("averageKeyRecord", new averageKeyRecord());
            processMap.put("averageKeyRecordTime", new averageKeyRecordTime());
            processMap.put("averageKeyRecordTimestr",
                    new averageKeyRecordTimestr());
            processMap.put("averageKeyRecords", new averageKeyRecords());
            processMap.put("averageKeyRecordsTime",
                    new averageKeyRecordsTime());
            processMap.put("averageKeyRecordsTimestr",
                    new averageKeyRecordsTimestr());
            processMap.put("averageKey", new averageKey());
            processMap.put("averageKeyTime", new averageKeyTime());
            processMap.put("averageKeyTimestr", new averageKeyTimestr());
            processMap.put("averageKeyCriteria", new averageKeyCriteria());
            processMap.put("averageKeyCriteriaTime",
                    new averageKeyCriteriaTime());
            processMap.put("averageKeyCriteriaTimestr",
                    new averageKeyCriteriaTimestr());
            processMap.put("averageKeyCcl", new averageKeyCcl());
            processMap.put("averageKeyCclTime", new averageKeyCclTime());
            processMap.put("averageKeyCclTimestr", new averageKeyCclTimestr());
            processMap.put("countKeyRecord", new countKeyRecord());
            processMap.put("countKeyRecordTime", new countKeyRecordTime());
            processMap.put("countKeyRecordTimestr",
                    new countKeyRecordTimestr());
            processMap.put("countKeyRecords", new countKeyRecords());
            processMap.put("countKeyRecordsTime", new countKeyRecordsTime());
            processMap.put("countKeyRecordsTimestr",
                    new countKeyRecordsTimestr());
            processMap.put("countKey", new countKey());
            processMap.put("countKeyTime", new countKeyTime());
            processMap.put("countKeyTimestr", new countKeyTimestr());
            processMap.put("countKeyCriteria", new countKeyCriteria());
            processMap.put("countKeyCriteriaTime", new countKeyCriteriaTime());
            processMap.put("countKeyCriteriaTimestr",
                    new countKeyCriteriaTimestr());
            processMap.put("countKeyCcl", new countKeyCcl());
            processMap.put("countKeyCclTime", new countKeyCclTime());
            processMap.put("countKeyCclTimestr", new countKeyCclTimestr());
            processMap.put("maxKeyRecord", new maxKeyRecord());
            processMap.put("maxKeyRecordTime", new maxKeyRecordTime());
            processMap.put("maxKeyRecordTimestr", new maxKeyRecordTimestr());
            processMap.put("maxKeyRecords", new maxKeyRecords());
            processMap.put("maxKeyRecordsTime", new maxKeyRecordsTime());
            processMap.put("maxKeyRecordsTimestr", new maxKeyRecordsTimestr());
            processMap.put("maxKeyCriteria", new maxKeyCriteria());
            processMap.put("maxKeyCriteriaTime", new maxKeyCriteriaTime());
            processMap.put("maxKeyCriteriaTimestr",
                    new maxKeyCriteriaTimestr());
            processMap.put("maxKeyCcl", new maxKeyCcl());
            processMap.put("maxKeyCclTime", new maxKeyCclTime());
            processMap.put("maxKeyCclTimestr", new maxKeyCclTimestr());
            processMap.put("maxKey", new maxKey());
            processMap.put("maxKeyTime", new maxKeyTime());
            processMap.put("maxKeyTimestr", new maxKeyTimestr());
            processMap.put("minKeyRecord", new minKeyRecord());
            processMap.put("minKeyRecordTime", new minKeyRecordTime());
            processMap.put("minKeyRecordTimestr", new minKeyRecordTimestr());
            processMap.put("minKey", new minKey());
            processMap.put("minKeyRecordsTime", new minKeyRecordsTime());
            processMap.put("minKeyRecordsTimestr", new minKeyRecordsTimestr());
            processMap.put("minKeyCriteria", new minKeyCriteria());
            processMap.put("minKeyCriteriaTime", new minKeyCriteriaTime());
            processMap.put("minKeyCriteriaTimestr",
                    new minKeyCriteriaTimestr());
            processMap.put("minKeyCcl", new minKeyCcl());
            processMap.put("minKeyCclTime", new minKeyCclTime());
            processMap.put("minKeyCclTimestr", new minKeyCclTimestr());
            processMap.put("minKeyTime", new minKeyTime());
            processMap.put("minKeyTimestr", new minKeyTimestr());
            processMap.put("minKeyRecords", new minKeyRecords());
            return processMap;
        }

        public static class sumKeyRecord extends
                org.apache.thrift.ProcessFunction {
            public sumKeyRecord() {
                super("sumKeyRecord");
            }

            public sumKeyRecord_args getEmptyArgsInstance() {
                return new sumKeyRecord_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyRecord_result getResult(I iface,
                    sumKeyRecord_args args)
                    throws org.apache.thrift.TException {
                sumKeyRecord_result result = new sumKeyRecord_result();
                try {
                    result.success = iface.sumKeyRecord(args.key, args.record,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class sumKeyRecordTime extends
                org.apache.thrift.ProcessFunction {
            public sumKeyRecordTime() {
                super("sumKeyRecordTime");
            }

            public sumKeyRecordTime_args getEmptyArgsInstance() {
                return new sumKeyRecordTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyRecordTime_result getResult(I iface,
                    sumKeyRecordTime_args args)
                    throws org.apache.thrift.TException {
                sumKeyRecordTime_result result = new sumKeyRecordTime_result();
                try {
                    result.success = iface.sumKeyRecordTime(args.key,
                            args.record, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class sumKeyRecordTimestr extends
                org.apache.thrift.ProcessFunction {
            public sumKeyRecordTimestr() {
                super("sumKeyRecordTimestr");
            }

            public sumKeyRecordTimestr_args getEmptyArgsInstance() {
                return new sumKeyRecordTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyRecordTimestr_result getResult(I iface,
                    sumKeyRecordTimestr_args args)
                    throws org.apache.thrift.TException {
                sumKeyRecordTimestr_result result = new sumKeyRecordTimestr_result();
                try {
                    result.success = iface.sumKeyRecordTimestr(args.key,
                            args.record, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class sumKeyRecords extends
                org.apache.thrift.ProcessFunction {
            public sumKeyRecords() {
                super("sumKeyRecords");
            }

            public sumKeyRecords_args getEmptyArgsInstance() {
                return new sumKeyRecords_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyRecords_result getResult(I iface,
                    sumKeyRecords_args args)
                    throws org.apache.thrift.TException {
                sumKeyRecords_result result = new sumKeyRecords_result();
                try {
                    result.success = iface.sumKeyRecords(args.key, args.records,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class sumKeyRecordsTime extends
                org.apache.thrift.ProcessFunction {
            public sumKeyRecordsTime() {
                super("sumKeyRecordsTime");
            }

            public sumKeyRecordsTime_args getEmptyArgsInstance() {
                return new sumKeyRecordsTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyRecordsTime_result getResult(I iface,
                    sumKeyRecordsTime_args args)
                    throws org.apache.thrift.TException {
                sumKeyRecordsTime_result result = new sumKeyRecordsTime_result();
                try {
                    result.success = iface.sumKeyRecordsTime(args.key,
                            args.records, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class sumKeyRecordsTimestr extends
                org.apache.thrift.ProcessFunction {
            public sumKeyRecordsTimestr() {
                super("sumKeyRecordsTimestr");
            }

            public sumKeyRecordsTimestr_args getEmptyArgsInstance() {
                return new sumKeyRecordsTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyRecordsTimestr_result getResult(I iface,
                    sumKeyRecordsTimestr_args args)
                    throws org.apache.thrift.TException {
                sumKeyRecordsTimestr_result result = new sumKeyRecordsTimestr_result();
                try {
                    result.success = iface.sumKeyRecordsTimestr(args.key,
                            args.records, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class sumKey
                extends org.apache.thrift.ProcessFunction {
            public sumKey() {
                super("sumKey");
            }

            public sumKey_args getEmptyArgsInstance() {
                return new sumKey_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKey_result getResult(I iface, sumKey_args args)
                    throws org.apache.thrift.TException {
                sumKey_result result = new sumKey_result();
                try {
                    result.success = iface.sumKey(args.key, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class sumKeyTime
                extends org.apache.thrift.ProcessFunction {
            public sumKeyTime() {
                super("sumKeyTime");
            }

            public sumKeyTime_args getEmptyArgsInstance() {
                return new sumKeyTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyTime_result getResult(I iface, sumKeyTime_args args)
                    throws org.apache.thrift.TException {
                sumKeyTime_result result = new sumKeyTime_result();
                try {
                    result.success = iface.sumKeyTime(args.key, args.timestamp,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class sumKeyTimestr extends
                org.apache.thrift.ProcessFunction {
            public sumKeyTimestr() {
                super("sumKeyTimestr");
            }

            public sumKeyTimestr_args getEmptyArgsInstance() {
                return new sumKeyTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyTimestr_result getResult(I iface,
                    sumKeyTimestr_args args)
                    throws org.apache.thrift.TException {
                sumKeyTimestr_result result = new sumKeyTimestr_result();
                try {
                    result.success = iface.sumKeyTimestr(args.key,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class sumKeyCriteria extends
                org.apache.thrift.ProcessFunction {
            public sumKeyCriteria() {
                super("sumKeyCriteria");
            }

            public sumKeyCriteria_args getEmptyArgsInstance() {
                return new sumKeyCriteria_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyCriteria_result getResult(I iface,
                    sumKeyCriteria_args args)
                    throws org.apache.thrift.TException {
                sumKeyCriteria_result result = new sumKeyCriteria_result();
                try {
                    result.success = iface.sumKeyCriteria(args.key,
                            args.criteria, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class sumKeyCriteriaTime extends
                org.apache.thrift.ProcessFunction {
            public sumKeyCriteriaTime() {
                super("sumKeyCriteriaTime");
            }

            public sumKeyCriteriaTime_args getEmptyArgsInstance() {
                return new sumKeyCriteriaTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyCriteriaTime_result getResult(I iface,
                    sumKeyCriteriaTime_args args)
                    throws org.apache.thrift.TException {
                sumKeyCriteriaTime_result result = new sumKeyCriteriaTime_result();
                try {
                    result.success = iface.sumKeyCriteriaTime(args.key,
                            args.criteria, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class sumKeyCriteriaTimestr extends
                org.apache.thrift.ProcessFunction {
            public sumKeyCriteriaTimestr() {
                super("sumKeyCriteriaTimestr");
            }

            public sumKeyCriteriaTimestr_args getEmptyArgsInstance() {
                return new sumKeyCriteriaTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyCriteriaTimestr_result getResult(I iface,
                    sumKeyCriteriaTimestr_args args)
                    throws org.apache.thrift.TException {
                sumKeyCriteriaTimestr_result result = new sumKeyCriteriaTimestr_result();
                try {
                    result.success = iface.sumKeyCriteriaTimestr(args.key,
                            args.criteria, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class sumKeyCcl
                extends org.apache.thrift.ProcessFunction {
            public sumKeyCcl() {
                super("sumKeyCcl");
            }

            public sumKeyCcl_args getEmptyArgsInstance() {
                return new sumKeyCcl_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyCcl_result getResult(I iface, sumKeyCcl_args args)
                    throws org.apache.thrift.TException {
                sumKeyCcl_result result = new sumKeyCcl_result();
                try {
                    result.success = iface.sumKeyCcl(args.key, args.ccl,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class sumKeyCclTime extends
                org.apache.thrift.ProcessFunction {
            public sumKeyCclTime() {
                super("sumKeyCclTime");
            }

            public sumKeyCclTime_args getEmptyArgsInstance() {
                return new sumKeyCclTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyCclTime_result getResult(I iface,
                    sumKeyCclTime_args args)
                    throws org.apache.thrift.TException {
                sumKeyCclTime_result result = new sumKeyCclTime_result();
                try {
                    result.success = iface.sumKeyCclTime(args.key, args.ccl,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class sumKeyCclTimestr extends
                org.apache.thrift.ProcessFunction {
            public sumKeyCclTimestr() {
                super("sumKeyCclTimestr");
            }

            public sumKeyCclTimestr_args getEmptyArgsInstance() {
                return new sumKeyCclTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public sumKeyCclTimestr_result getResult(I iface,
                    sumKeyCclTimestr_args args)
                    throws org.apache.thrift.TException {
                sumKeyCclTimestr_result result = new sumKeyCclTimestr_result();
                try {
                    result.success = iface.sumKeyCclTimestr(args.key, args.ccl,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class averageKeyRecord extends
                org.apache.thrift.ProcessFunction {
            public averageKeyRecord() {
                super("averageKeyRecord");
            }

            public averageKeyRecord_args getEmptyArgsInstance() {
                return new averageKeyRecord_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyRecord_result getResult(I iface,
                    averageKeyRecord_args args)
                    throws org.apache.thrift.TException {
                averageKeyRecord_result result = new averageKeyRecord_result();
                try {
                    result.success = iface.averageKeyRecord(args.key,
                            args.record, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class averageKeyRecordTime extends
                org.apache.thrift.ProcessFunction {
            public averageKeyRecordTime() {
                super("averageKeyRecordTime");
            }

            public averageKeyRecordTime_args getEmptyArgsInstance() {
                return new averageKeyRecordTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyRecordTime_result getResult(I iface,
                    averageKeyRecordTime_args args)
                    throws org.apache.thrift.TException {
                averageKeyRecordTime_result result = new averageKeyRecordTime_result();
                try {
                    result.success = iface.averageKeyRecordTime(args.key,
                            args.record, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class averageKeyRecordTimestr extends
                org.apache.thrift.ProcessFunction {
            public averageKeyRecordTimestr() {
                super("averageKeyRecordTimestr");
            }

            public averageKeyRecordTimestr_args getEmptyArgsInstance() {
                return new averageKeyRecordTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyRecordTimestr_result getResult(I iface,
                    averageKeyRecordTimestr_args args)
                    throws org.apache.thrift.TException {
                averageKeyRecordTimestr_result result = new averageKeyRecordTimestr_result();
                try {
                    result.success = iface.averageKeyRecordTimestr(args.key,
                            args.record, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class averageKeyRecords extends
                org.apache.thrift.ProcessFunction {
            public averageKeyRecords() {
                super("averageKeyRecords");
            }

            public averageKeyRecords_args getEmptyArgsInstance() {
                return new averageKeyRecords_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyRecords_result getResult(I iface,
                    averageKeyRecords_args args)
                    throws org.apache.thrift.TException {
                averageKeyRecords_result result = new averageKeyRecords_result();
                try {
                    result.success = iface.averageKeyRecords(args.key,
                            args.records, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class averageKeyRecordsTime extends
                org.apache.thrift.ProcessFunction {
            public averageKeyRecordsTime() {
                super("averageKeyRecordsTime");
            }

            public averageKeyRecordsTime_args getEmptyArgsInstance() {
                return new averageKeyRecordsTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyRecordsTime_result getResult(I iface,
                    averageKeyRecordsTime_args args)
                    throws org.apache.thrift.TException {
                averageKeyRecordsTime_result result = new averageKeyRecordsTime_result();
                try {
                    result.success = iface.averageKeyRecordsTime(args.key,
                            args.records, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class averageKeyRecordsTimestr extends
                org.apache.thrift.ProcessFunction {
            public averageKeyRecordsTimestr() {
                super("averageKeyRecordsTimestr");
            }

            public averageKeyRecordsTimestr_args getEmptyArgsInstance() {
                return new averageKeyRecordsTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyRecordsTimestr_result getResult(I iface,
                    averageKeyRecordsTimestr_args args)
                    throws org.apache.thrift.TException {
                averageKeyRecordsTimestr_result result = new averageKeyRecordsTimestr_result();
                try {
                    result.success = iface.averageKeyRecordsTimestr(args.key,
                            args.records, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class averageKey
                extends org.apache.thrift.ProcessFunction {
            public averageKey() {
                super("averageKey");
            }

            public averageKey_args getEmptyArgsInstance() {
                return new averageKey_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKey_result getResult(I iface, averageKey_args args)
                    throws org.apache.thrift.TException {
                averageKey_result result = new averageKey_result();
                try {
                    result.success = iface.averageKey(args.key, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class averageKeyTime extends
                org.apache.thrift.ProcessFunction {
            public averageKeyTime() {
                super("averageKeyTime");
            }

            public averageKeyTime_args getEmptyArgsInstance() {
                return new averageKeyTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyTime_result getResult(I iface,
                    averageKeyTime_args args)
                    throws org.apache.thrift.TException {
                averageKeyTime_result result = new averageKeyTime_result();
                try {
                    result.success = iface.averageKeyTime(args.key,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class averageKeyTimestr extends
                org.apache.thrift.ProcessFunction {
            public averageKeyTimestr() {
                super("averageKeyTimestr");
            }

            public averageKeyTimestr_args getEmptyArgsInstance() {
                return new averageKeyTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyTimestr_result getResult(I iface,
                    averageKeyTimestr_args args)
                    throws org.apache.thrift.TException {
                averageKeyTimestr_result result = new averageKeyTimestr_result();
                try {
                    result.success = iface.averageKeyTimestr(args.key,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class averageKeyCriteria extends
                org.apache.thrift.ProcessFunction {
            public averageKeyCriteria() {
                super("averageKeyCriteria");
            }

            public averageKeyCriteria_args getEmptyArgsInstance() {
                return new averageKeyCriteria_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyCriteria_result getResult(I iface,
                    averageKeyCriteria_args args)
                    throws org.apache.thrift.TException {
                averageKeyCriteria_result result = new averageKeyCriteria_result();
                try {
                    result.success = iface.averageKeyCriteria(args.key,
                            args.criteria, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class averageKeyCriteriaTime extends
                org.apache.thrift.ProcessFunction {
            public averageKeyCriteriaTime() {
                super("averageKeyCriteriaTime");
            }

            public averageKeyCriteriaTime_args getEmptyArgsInstance() {
                return new averageKeyCriteriaTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyCriteriaTime_result getResult(I iface,
                    averageKeyCriteriaTime_args args)
                    throws org.apache.thrift.TException {
                averageKeyCriteriaTime_result result = new averageKeyCriteriaTime_result();
                try {
                    result.success = iface.averageKeyCriteriaTime(args.key,
                            args.criteria, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class averageKeyCriteriaTimestr extends
                org.apache.thrift.ProcessFunction {
            public averageKeyCriteriaTimestr() {
                super("averageKeyCriteriaTimestr");
            }

            public averageKeyCriteriaTimestr_args getEmptyArgsInstance() {
                return new averageKeyCriteriaTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyCriteriaTimestr_result getResult(I iface,
                    averageKeyCriteriaTimestr_args args)
                    throws org.apache.thrift.TException {
                averageKeyCriteriaTimestr_result result = new averageKeyCriteriaTimestr_result();
                try {
                    result.success = iface.averageKeyCriteriaTimestr(args.key,
                            args.criteria, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class averageKeyCcl extends
                org.apache.thrift.ProcessFunction {
            public averageKeyCcl() {
                super("averageKeyCcl");
            }

            public averageKeyCcl_args getEmptyArgsInstance() {
                return new averageKeyCcl_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyCcl_result getResult(I iface,
                    averageKeyCcl_args args)
                    throws org.apache.thrift.TException {
                averageKeyCcl_result result = new averageKeyCcl_result();
                try {
                    result.success = iface.averageKeyCcl(args.key, args.ccl,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class averageKeyCclTime extends
                org.apache.thrift.ProcessFunction {
            public averageKeyCclTime() {
                super("averageKeyCclTime");
            }

            public averageKeyCclTime_args getEmptyArgsInstance() {
                return new averageKeyCclTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyCclTime_result getResult(I iface,
                    averageKeyCclTime_args args)
                    throws org.apache.thrift.TException {
                averageKeyCclTime_result result = new averageKeyCclTime_result();
                try {
                    result.success = iface.averageKeyCclTime(args.key, args.ccl,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class averageKeyCclTimestr extends
                org.apache.thrift.ProcessFunction {
            public averageKeyCclTimestr() {
                super("averageKeyCclTimestr");
            }

            public averageKeyCclTimestr_args getEmptyArgsInstance() {
                return new averageKeyCclTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public averageKeyCclTimestr_result getResult(I iface,
                    averageKeyCclTimestr_args args)
                    throws org.apache.thrift.TException {
                averageKeyCclTimestr_result result = new averageKeyCclTimestr_result();
                try {
                    result.success = iface.averageKeyCclTimestr(args.key,
                            args.ccl, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class countKeyRecord extends
                org.apache.thrift.ProcessFunction {
            public countKeyRecord() {
                super("countKeyRecord");
            }

            public countKeyRecord_args getEmptyArgsInstance() {
                return new countKeyRecord_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyRecord_result getResult(I iface,
                    countKeyRecord_args args)
                    throws org.apache.thrift.TException {
                countKeyRecord_result result = new countKeyRecord_result();
                try {
                    result.success = iface.countKeyRecord(args.key, args.record,
                            args.creds, args.transaction, args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class countKeyRecordTime extends
                org.apache.thrift.ProcessFunction {
            public countKeyRecordTime() {
                super("countKeyRecordTime");
            }

            public countKeyRecordTime_args getEmptyArgsInstance() {
                return new countKeyRecordTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyRecordTime_result getResult(I iface,
                    countKeyRecordTime_args args)
                    throws org.apache.thrift.TException {
                countKeyRecordTime_result result = new countKeyRecordTime_result();
                try {
                    result.success = iface.countKeyRecordTime(args.key,
                            args.record, args.timestamp, args.creds,
                            args.transaction, args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class countKeyRecordTimestr extends
                org.apache.thrift.ProcessFunction {
            public countKeyRecordTimestr() {
                super("countKeyRecordTimestr");
            }

            public countKeyRecordTimestr_args getEmptyArgsInstance() {
                return new countKeyRecordTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyRecordTimestr_result getResult(I iface,
                    countKeyRecordTimestr_args args)
                    throws org.apache.thrift.TException {
                countKeyRecordTimestr_result result = new countKeyRecordTimestr_result();
                try {
                    result.success = iface.countKeyRecordTimestr(args.key,
                            args.record, args.timestamp, args.creds,
                            args.transaction, args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class countKeyRecords extends
                org.apache.thrift.ProcessFunction {
            public countKeyRecords() {
                super("countKeyRecords");
            }

            public countKeyRecords_args getEmptyArgsInstance() {
                return new countKeyRecords_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyRecords_result getResult(I iface,
                    countKeyRecords_args args)
                    throws org.apache.thrift.TException {
                countKeyRecords_result result = new countKeyRecords_result();
                try {
                    result.success = iface.countKeyRecords(args.key,
                            args.records, args.creds, args.transaction,
                            args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class countKeyRecordsTime extends
                org.apache.thrift.ProcessFunction {
            public countKeyRecordsTime() {
                super("countKeyRecordsTime");
            }

            public countKeyRecordsTime_args getEmptyArgsInstance() {
                return new countKeyRecordsTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyRecordsTime_result getResult(I iface,
                    countKeyRecordsTime_args args)
                    throws org.apache.thrift.TException {
                countKeyRecordsTime_result result = new countKeyRecordsTime_result();
                try {
                    result.success = iface.countKeyRecordsTime(args.key,
                            args.records, args.timestamp, args.creds,
                            args.transaction, args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class countKeyRecordsTimestr extends
                org.apache.thrift.ProcessFunction {
            public countKeyRecordsTimestr() {
                super("countKeyRecordsTimestr");
            }

            public countKeyRecordsTimestr_args getEmptyArgsInstance() {
                return new countKeyRecordsTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyRecordsTimestr_result getResult(I iface,
                    countKeyRecordsTimestr_args args)
                    throws org.apache.thrift.TException {
                countKeyRecordsTimestr_result result = new countKeyRecordsTimestr_result();
                try {
                    result.success = iface.countKeyRecordsTimestr(args.key,
                            args.records, args.timestamp, args.creds,
                            args.transaction, args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class countKey
                extends org.apache.thrift.ProcessFunction {
            public countKey() {
                super("countKey");
            }

            public countKey_args getEmptyArgsInstance() {
                return new countKey_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKey_result getResult(I iface, countKey_args args)
                    throws org.apache.thrift.TException {
                countKey_result result = new countKey_result();
                try {
                    result.success = iface.countKey(args.key, args.creds,
                            args.transaction, args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class countKeyTime extends
                org.apache.thrift.ProcessFunction {
            public countKeyTime() {
                super("countKeyTime");
            }

            public countKeyTime_args getEmptyArgsInstance() {
                return new countKeyTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyTime_result getResult(I iface,
                    countKeyTime_args args)
                    throws org.apache.thrift.TException {
                countKeyTime_result result = new countKeyTime_result();
                try {
                    result.success = iface.countKeyTime(args.key,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class countKeyTimestr extends
                org.apache.thrift.ProcessFunction {
            public countKeyTimestr() {
                super("countKeyTimestr");
            }

            public countKeyTimestr_args getEmptyArgsInstance() {
                return new countKeyTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyTimestr_result getResult(I iface,
                    countKeyTimestr_args args)
                    throws org.apache.thrift.TException {
                countKeyTimestr_result result = new countKeyTimestr_result();
                try {
                    result.success = iface.countKeyTimestr(args.key,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class countKeyCriteria extends
                org.apache.thrift.ProcessFunction {
            public countKeyCriteria() {
                super("countKeyCriteria");
            }

            public countKeyCriteria_args getEmptyArgsInstance() {
                return new countKeyCriteria_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyCriteria_result getResult(I iface,
                    countKeyCriteria_args args)
                    throws org.apache.thrift.TException {
                countKeyCriteria_result result = new countKeyCriteria_result();
                try {
                    result.success = iface.countKeyCriteria(args.key,
                            args.criteria, args.creds, args.transaction,
                            args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class countKeyCriteriaTime extends
                org.apache.thrift.ProcessFunction {
            public countKeyCriteriaTime() {
                super("countKeyCriteriaTime");
            }

            public countKeyCriteriaTime_args getEmptyArgsInstance() {
                return new countKeyCriteriaTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyCriteriaTime_result getResult(I iface,
                    countKeyCriteriaTime_args args)
                    throws org.apache.thrift.TException {
                countKeyCriteriaTime_result result = new countKeyCriteriaTime_result();
                try {
                    result.success = iface.countKeyCriteriaTime(args.key,
                            args.criteria, args.timestamp, args.creds,
                            args.transaction, args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class countKeyCriteriaTimestr extends
                org.apache.thrift.ProcessFunction {
            public countKeyCriteriaTimestr() {
                super("countKeyCriteriaTimestr");
            }

            public countKeyCriteriaTimestr_args getEmptyArgsInstance() {
                return new countKeyCriteriaTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyCriteriaTimestr_result getResult(I iface,
                    countKeyCriteriaTimestr_args args)
                    throws org.apache.thrift.TException {
                countKeyCriteriaTimestr_result result = new countKeyCriteriaTimestr_result();
                try {
                    result.success = iface.countKeyCriteriaTimestr(args.key,
                            args.criteria, args.timestamp, args.creds,
                            args.transaction, args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class countKeyCcl
                extends org.apache.thrift.ProcessFunction {
            public countKeyCcl() {
                super("countKeyCcl");
            }

            public countKeyCcl_args getEmptyArgsInstance() {
                return new countKeyCcl_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyCcl_result getResult(I iface, countKeyCcl_args args)
                    throws org.apache.thrift.TException {
                countKeyCcl_result result = new countKeyCcl_result();
                try {
                    result.success = iface.countKeyCcl(args.key, args.ccl,
                            args.creds, args.transaction, args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class countKeyCclTime extends
                org.apache.thrift.ProcessFunction {
            public countKeyCclTime() {
                super("countKeyCclTime");
            }

            public countKeyCclTime_args getEmptyArgsInstance() {
                return new countKeyCclTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyCclTime_result getResult(I iface,
                    countKeyCclTime_args args)
                    throws org.apache.thrift.TException {
                countKeyCclTime_result result = new countKeyCclTime_result();
                try {
                    result.success = iface.countKeyCclTime(args.key, args.ccl,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class countKeyCclTimestr extends
                org.apache.thrift.ProcessFunction {
            public countKeyCclTimestr() {
                super("countKeyCclTimestr");
            }

            public countKeyCclTimestr_args getEmptyArgsInstance() {
                return new countKeyCclTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public countKeyCclTimestr_result getResult(I iface,
                    countKeyCclTimestr_args args)
                    throws org.apache.thrift.TException {
                countKeyCclTimestr_result result = new countKeyCclTimestr_result();
                try {
                    result.success = iface.countKeyCclTimestr(args.key,
                            args.ccl, args.timestamp, args.creds,
                            args.transaction, args.environment);
                    result.setSuccessIsSet(true);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class maxKeyRecord extends
                org.apache.thrift.ProcessFunction {
            public maxKeyRecord() {
                super("maxKeyRecord");
            }

            public maxKeyRecord_args getEmptyArgsInstance() {
                return new maxKeyRecord_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyRecord_result getResult(I iface,
                    maxKeyRecord_args args)
                    throws org.apache.thrift.TException {
                maxKeyRecord_result result = new maxKeyRecord_result();
                try {
                    result.success = iface.maxKeyRecord(args.key, args.record,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class maxKeyRecordTime extends
                org.apache.thrift.ProcessFunction {
            public maxKeyRecordTime() {
                super("maxKeyRecordTime");
            }

            public maxKeyRecordTime_args getEmptyArgsInstance() {
                return new maxKeyRecordTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyRecordTime_result getResult(I iface,
                    maxKeyRecordTime_args args)
                    throws org.apache.thrift.TException {
                maxKeyRecordTime_result result = new maxKeyRecordTime_result();
                try {
                    result.success = iface.maxKeyRecordTime(args.key,
                            args.record, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class maxKeyRecordTimestr extends
                org.apache.thrift.ProcessFunction {
            public maxKeyRecordTimestr() {
                super("maxKeyRecordTimestr");
            }

            public maxKeyRecordTimestr_args getEmptyArgsInstance() {
                return new maxKeyRecordTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyRecordTimestr_result getResult(I iface,
                    maxKeyRecordTimestr_args args)
                    throws org.apache.thrift.TException {
                maxKeyRecordTimestr_result result = new maxKeyRecordTimestr_result();
                try {
                    result.success = iface.maxKeyRecordTimestr(args.key,
                            args.record, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class maxKeyRecords extends
                org.apache.thrift.ProcessFunction {
            public maxKeyRecords() {
                super("maxKeyRecords");
            }

            public maxKeyRecords_args getEmptyArgsInstance() {
                return new maxKeyRecords_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyRecords_result getResult(I iface,
                    maxKeyRecords_args args)
                    throws org.apache.thrift.TException {
                maxKeyRecords_result result = new maxKeyRecords_result();
                try {
                    result.success = iface.maxKeyRecords(args.key, args.records,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class maxKeyRecordsTime extends
                org.apache.thrift.ProcessFunction {
            public maxKeyRecordsTime() {
                super("maxKeyRecordsTime");
            }

            public maxKeyRecordsTime_args getEmptyArgsInstance() {
                return new maxKeyRecordsTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyRecordsTime_result getResult(I iface,
                    maxKeyRecordsTime_args args)
                    throws org.apache.thrift.TException {
                maxKeyRecordsTime_result result = new maxKeyRecordsTime_result();
                try {
                    result.success = iface.maxKeyRecordsTime(args.key,
                            args.records, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class maxKeyRecordsTimestr extends
                org.apache.thrift.ProcessFunction {
            public maxKeyRecordsTimestr() {
                super("maxKeyRecordsTimestr");
            }

            public maxKeyRecordsTimestr_args getEmptyArgsInstance() {
                return new maxKeyRecordsTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyRecordsTimestr_result getResult(I iface,
                    maxKeyRecordsTimestr_args args)
                    throws org.apache.thrift.TException {
                maxKeyRecordsTimestr_result result = new maxKeyRecordsTimestr_result();
                try {
                    result.success = iface.maxKeyRecordsTimestr(args.key,
                            args.records, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class maxKeyCriteria extends
                org.apache.thrift.ProcessFunction {
            public maxKeyCriteria() {
                super("maxKeyCriteria");
            }

            public maxKeyCriteria_args getEmptyArgsInstance() {
                return new maxKeyCriteria_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyCriteria_result getResult(I iface,
                    maxKeyCriteria_args args)
                    throws org.apache.thrift.TException {
                maxKeyCriteria_result result = new maxKeyCriteria_result();
                try {
                    result.success = iface.maxKeyCriteria(args.key,
                            args.criteria, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class maxKeyCriteriaTime extends
                org.apache.thrift.ProcessFunction {
            public maxKeyCriteriaTime() {
                super("maxKeyCriteriaTime");
            }

            public maxKeyCriteriaTime_args getEmptyArgsInstance() {
                return new maxKeyCriteriaTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyCriteriaTime_result getResult(I iface,
                    maxKeyCriteriaTime_args args)
                    throws org.apache.thrift.TException {
                maxKeyCriteriaTime_result result = new maxKeyCriteriaTime_result();
                try {
                    result.success = iface.maxKeyCriteriaTime(args.key,
                            args.criteria, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class maxKeyCriteriaTimestr extends
                org.apache.thrift.ProcessFunction {
            public maxKeyCriteriaTimestr() {
                super("maxKeyCriteriaTimestr");
            }

            public maxKeyCriteriaTimestr_args getEmptyArgsInstance() {
                return new maxKeyCriteriaTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyCriteriaTimestr_result getResult(I iface,
                    maxKeyCriteriaTimestr_args args)
                    throws org.apache.thrift.TException {
                maxKeyCriteriaTimestr_result result = new maxKeyCriteriaTimestr_result();
                try {
                    result.success = iface.maxKeyCriteriaTimestr(args.key,
                            args.criteria, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class maxKeyCcl
                extends org.apache.thrift.ProcessFunction {
            public maxKeyCcl() {
                super("maxKeyCcl");
            }

            public maxKeyCcl_args getEmptyArgsInstance() {
                return new maxKeyCcl_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyCcl_result getResult(I iface, maxKeyCcl_args args)
                    throws org.apache.thrift.TException {
                maxKeyCcl_result result = new maxKeyCcl_result();
                try {
                    result.success = iface.maxKeyCcl(args.key, args.ccl,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class maxKeyCclTime extends
                org.apache.thrift.ProcessFunction {
            public maxKeyCclTime() {
                super("maxKeyCclTime");
            }

            public maxKeyCclTime_args getEmptyArgsInstance() {
                return new maxKeyCclTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyCclTime_result getResult(I iface,
                    maxKeyCclTime_args args)
                    throws org.apache.thrift.TException {
                maxKeyCclTime_result result = new maxKeyCclTime_result();
                try {
                    result.success = iface.maxKeyCclTime(args.key, args.ccl,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class maxKeyCclTimestr extends
                org.apache.thrift.ProcessFunction {
            public maxKeyCclTimestr() {
                super("maxKeyCclTimestr");
            }

            public maxKeyCclTimestr_args getEmptyArgsInstance() {
                return new maxKeyCclTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyCclTimestr_result getResult(I iface,
                    maxKeyCclTimestr_args args)
                    throws org.apache.thrift.TException {
                maxKeyCclTimestr_result result = new maxKeyCclTimestr_result();
                try {
                    result.success = iface.maxKeyCclTimestr(args.key, args.ccl,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class maxKey
                extends org.apache.thrift.ProcessFunction {
            public maxKey() {
                super("maxKey");
            }

            public maxKey_args getEmptyArgsInstance() {
                return new maxKey_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKey_result getResult(I iface, maxKey_args args)
                    throws org.apache.thrift.TException {
                maxKey_result result = new maxKey_result();
                try {
                    result.success = iface.maxKey(args.key, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class maxKeyTime
                extends org.apache.thrift.ProcessFunction {
            public maxKeyTime() {
                super("maxKeyTime");
            }

            public maxKeyTime_args getEmptyArgsInstance() {
                return new maxKeyTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyTime_result getResult(I iface, maxKeyTime_args args)
                    throws org.apache.thrift.TException {
                maxKeyTime_result result = new maxKeyTime_result();
                try {
                    result.success = iface.maxKeyTime(args.key, args.timestamp,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class maxKeyTimestr extends
                org.apache.thrift.ProcessFunction {
            public maxKeyTimestr() {
                super("maxKeyTimestr");
            }

            public maxKeyTimestr_args getEmptyArgsInstance() {
                return new maxKeyTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public maxKeyTimestr_result getResult(I iface,
                    maxKeyTimestr_args args)
                    throws org.apache.thrift.TException {
                maxKeyTimestr_result result = new maxKeyTimestr_result();
                try {
                    result.success = iface.maxKeyTimestr(args.key,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class minKeyRecord extends
                org.apache.thrift.ProcessFunction {
            public minKeyRecord() {
                super("minKeyRecord");
            }

            public minKeyRecord_args getEmptyArgsInstance() {
                return new minKeyRecord_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyRecord_result getResult(I iface,
                    minKeyRecord_args args)
                    throws org.apache.thrift.TException {
                minKeyRecord_result result = new minKeyRecord_result();
                try {
                    result.success = iface.minKeyRecord(args.key, args.record,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class minKeyRecordTime extends
                org.apache.thrift.ProcessFunction {
            public minKeyRecordTime() {
                super("minKeyRecordTime");
            }

            public minKeyRecordTime_args getEmptyArgsInstance() {
                return new minKeyRecordTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyRecordTime_result getResult(I iface,
                    minKeyRecordTime_args args)
                    throws org.apache.thrift.TException {
                minKeyRecordTime_result result = new minKeyRecordTime_result();
                try {
                    result.success = iface.minKeyRecordTime(args.key,
                            args.record, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class minKeyRecordTimestr extends
                org.apache.thrift.ProcessFunction {
            public minKeyRecordTimestr() {
                super("minKeyRecordTimestr");
            }

            public minKeyRecordTimestr_args getEmptyArgsInstance() {
                return new minKeyRecordTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyRecordTimestr_result getResult(I iface,
                    minKeyRecordTimestr_args args)
                    throws org.apache.thrift.TException {
                minKeyRecordTimestr_result result = new minKeyRecordTimestr_result();
                try {
                    result.success = iface.minKeyRecordTimestr(args.key,
                            args.record, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class minKey
                extends org.apache.thrift.ProcessFunction {
            public minKey() {
                super("minKey");
            }

            public minKey_args getEmptyArgsInstance() {
                return new minKey_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKey_result getResult(I iface, minKey_args args)
                    throws org.apache.thrift.TException {
                minKey_result result = new minKey_result();
                try {
                    result.success = iface.minKey(args.key, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class minKeyRecordsTime extends
                org.apache.thrift.ProcessFunction {
            public minKeyRecordsTime() {
                super("minKeyRecordsTime");
            }

            public minKeyRecordsTime_args getEmptyArgsInstance() {
                return new minKeyRecordsTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyRecordsTime_result getResult(I iface,
                    minKeyRecordsTime_args args)
                    throws org.apache.thrift.TException {
                minKeyRecordsTime_result result = new minKeyRecordsTime_result();
                try {
                    result.success = iface.minKeyRecordsTime(args.key,
                            args.records, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class minKeyRecordsTimestr extends
                org.apache.thrift.ProcessFunction {
            public minKeyRecordsTimestr() {
                super("minKeyRecordsTimestr");
            }

            public minKeyRecordsTimestr_args getEmptyArgsInstance() {
                return new minKeyRecordsTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyRecordsTimestr_result getResult(I iface,
                    minKeyRecordsTimestr_args args)
                    throws org.apache.thrift.TException {
                minKeyRecordsTimestr_result result = new minKeyRecordsTimestr_result();
                try {
                    result.success = iface.minKeyRecordsTimestr(args.key,
                            args.records, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class minKeyCriteria extends
                org.apache.thrift.ProcessFunction {
            public minKeyCriteria() {
                super("minKeyCriteria");
            }

            public minKeyCriteria_args getEmptyArgsInstance() {
                return new minKeyCriteria_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyCriteria_result getResult(I iface,
                    minKeyCriteria_args args)
                    throws org.apache.thrift.TException {
                minKeyCriteria_result result = new minKeyCriteria_result();
                try {
                    result.success = iface.minKeyCriteria(args.key,
                            args.criteria, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class minKeyCriteriaTime extends
                org.apache.thrift.ProcessFunction {
            public minKeyCriteriaTime() {
                super("minKeyCriteriaTime");
            }

            public minKeyCriteriaTime_args getEmptyArgsInstance() {
                return new minKeyCriteriaTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyCriteriaTime_result getResult(I iface,
                    minKeyCriteriaTime_args args)
                    throws org.apache.thrift.TException {
                minKeyCriteriaTime_result result = new minKeyCriteriaTime_result();
                try {
                    result.success = iface.minKeyCriteriaTime(args.key,
                            args.criteria, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class minKeyCriteriaTimestr extends
                org.apache.thrift.ProcessFunction {
            public minKeyCriteriaTimestr() {
                super("minKeyCriteriaTimestr");
            }

            public minKeyCriteriaTimestr_args getEmptyArgsInstance() {
                return new minKeyCriteriaTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyCriteriaTimestr_result getResult(I iface,
                    minKeyCriteriaTimestr_args args)
                    throws org.apache.thrift.TException {
                minKeyCriteriaTimestr_result result = new minKeyCriteriaTimestr_result();
                try {
                    result.success = iface.minKeyCriteriaTimestr(args.key,
                            args.criteria, args.timestamp, args.creds,
                            args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class minKeyCcl
                extends org.apache.thrift.ProcessFunction {
            public minKeyCcl() {
                super("minKeyCcl");
            }

            public minKeyCcl_args getEmptyArgsInstance() {
                return new minKeyCcl_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyCcl_result getResult(I iface, minKeyCcl_args args)
                    throws org.apache.thrift.TException {
                minKeyCcl_result result = new minKeyCcl_result();
                try {
                    result.success = iface.minKeyCcl(args.key, args.ccl,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class minKeyCclTime extends
                org.apache.thrift.ProcessFunction {
            public minKeyCclTime() {
                super("minKeyCclTime");
            }

            public minKeyCclTime_args getEmptyArgsInstance() {
                return new minKeyCclTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyCclTime_result getResult(I iface,
                    minKeyCclTime_args args)
                    throws org.apache.thrift.TException {
                minKeyCclTime_result result = new minKeyCclTime_result();
                try {
                    result.success = iface.minKeyCclTime(args.key, args.ccl,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class minKeyCclTimestr extends
                org.apache.thrift.ProcessFunction {
            public minKeyCclTimestr() {
                super("minKeyCclTimestr");
            }

            public minKeyCclTimestr_args getEmptyArgsInstance() {
                return new minKeyCclTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyCclTimestr_result getResult(I iface,
                    minKeyCclTimestr_args args)
                    throws org.apache.thrift.TException {
                minKeyCclTimestr_result result = new minKeyCclTimestr_result();
                try {
                    result.success = iface.minKeyCclTimestr(args.key, args.ccl,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class minKeyTime
                extends org.apache.thrift.ProcessFunction {
            public minKeyTime() {
                super("minKeyTime");
            }

            public minKeyTime_args getEmptyArgsInstance() {
                return new minKeyTime_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyTime_result getResult(I iface, minKeyTime_args args)
                    throws org.apache.thrift.TException {
                minKeyTime_result result = new minKeyTime_result();
                try {
                    result.success = iface.minKeyTime(args.key, args.timestamp,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

        public static class minKeyTimestr extends
                org.apache.thrift.ProcessFunction {
            public minKeyTimestr() {
                super("minKeyTimestr");
            }

            public minKeyTimestr_args getEmptyArgsInstance() {
                return new minKeyTimestr_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyTimestr_result getResult(I iface,
                    minKeyTimestr_args args)
                    throws org.apache.thrift.TException {
                minKeyTimestr_result result = new minKeyTimestr_result();
                try {
                    result.success = iface.minKeyTimestr(args.key,
                            args.timestamp, args.creds, args.transaction,
                            args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.ParseException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex4) {
                    result.ex4 = ex4;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
                    result.ex5 = ex5;
                }
                return result;
            }
        }

        public static class minKeyRecords extends
                org.apache.thrift.ProcessFunction {
            public minKeyRecords() {
                super("minKeyRecords");
            }

            public minKeyRecords_args getEmptyArgsInstance() {
                return new minKeyRecords_args();
            }

            protected boolean isOneway() {
                return false;
            }

            @Override
            protected boolean rethrowUnhandledExceptions() {
                return false;
            }

            public minKeyRecords_result getResult(I iface,
                    minKeyRecords_args args)
                    throws org.apache.thrift.TException {
                minKeyRecords_result result = new minKeyRecords_result();
                try {
                    result.success = iface.minKeyRecords(args.key, args.records,
                            args.creds, args.transaction, args.environment);
                }
                catch (com.cinchapi.concourse.thrift.SecurityException ex) {
                    result.ex = ex;
                }
                catch (com.cinchapi.concourse.thrift.TransactionException ex2) {
                    result.ex2 = ex2;
                }
                catch (com.cinchapi.concourse.thrift.PermissionException ex3) {
                    result.ex3 = ex3;
                }
                catch (com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
                    result.ex4 = ex4;
                }
                return result;
            }
        }

    }

    public static class AsyncProcessor
            extends org.apache.thrift.TBaseAsyncProcessor {
        private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory
                .getLogger(AsyncProcessor.class.getName());

        public AsyncProcessor(I iface) {
            super(iface, getProcessMap(
                    new java.util.LinkedHashMap>()));
        }

        protected AsyncProcessor(I iface,
                java.util.Map> processMap) {
            super(iface, getProcessMap(processMap));
        }

        private static  java.util.Map> getProcessMap(
                java.util.Map> processMap) {
            processMap.put("sumKeyRecord", new sumKeyRecord());
            processMap.put("sumKeyRecordTime", new sumKeyRecordTime());
            processMap.put("sumKeyRecordTimestr", new sumKeyRecordTimestr());
            processMap.put("sumKeyRecords", new sumKeyRecords());
            processMap.put("sumKeyRecordsTime", new sumKeyRecordsTime());
            processMap.put("sumKeyRecordsTimestr", new sumKeyRecordsTimestr());
            processMap.put("sumKey", new sumKey());
            processMap.put("sumKeyTime", new sumKeyTime());
            processMap.put("sumKeyTimestr", new sumKeyTimestr());
            processMap.put("sumKeyCriteria", new sumKeyCriteria());
            processMap.put("sumKeyCriteriaTime", new sumKeyCriteriaTime());
            processMap.put("sumKeyCriteriaTimestr",
                    new sumKeyCriteriaTimestr());
            processMap.put("sumKeyCcl", new sumKeyCcl());
            processMap.put("sumKeyCclTime", new sumKeyCclTime());
            processMap.put("sumKeyCclTimestr", new sumKeyCclTimestr());
            processMap.put("averageKeyRecord", new averageKeyRecord());
            processMap.put("averageKeyRecordTime", new averageKeyRecordTime());
            processMap.put("averageKeyRecordTimestr",
                    new averageKeyRecordTimestr());
            processMap.put("averageKeyRecords", new averageKeyRecords());
            processMap.put("averageKeyRecordsTime",
                    new averageKeyRecordsTime());
            processMap.put("averageKeyRecordsTimestr",
                    new averageKeyRecordsTimestr());
            processMap.put("averageKey", new averageKey());
            processMap.put("averageKeyTime", new averageKeyTime());
            processMap.put("averageKeyTimestr", new averageKeyTimestr());
            processMap.put("averageKeyCriteria", new averageKeyCriteria());
            processMap.put("averageKeyCriteriaTime",
                    new averageKeyCriteriaTime());
            processMap.put("averageKeyCriteriaTimestr",
                    new averageKeyCriteriaTimestr());
            processMap.put("averageKeyCcl", new averageKeyCcl());
            processMap.put("averageKeyCclTime", new averageKeyCclTime());
            processMap.put("averageKeyCclTimestr", new averageKeyCclTimestr());
            processMap.put("countKeyRecord", new countKeyRecord());
            processMap.put("countKeyRecordTime", new countKeyRecordTime());
            processMap.put("countKeyRecordTimestr",
                    new countKeyRecordTimestr());
            processMap.put("countKeyRecords", new countKeyRecords());
            processMap.put("countKeyRecordsTime", new countKeyRecordsTime());
            processMap.put("countKeyRecordsTimestr",
                    new countKeyRecordsTimestr());
            processMap.put("countKey", new countKey());
            processMap.put("countKeyTime", new countKeyTime());
            processMap.put("countKeyTimestr", new countKeyTimestr());
            processMap.put("countKeyCriteria", new countKeyCriteria());
            processMap.put("countKeyCriteriaTime", new countKeyCriteriaTime());
            processMap.put("countKeyCriteriaTimestr",
                    new countKeyCriteriaTimestr());
            processMap.put("countKeyCcl", new countKeyCcl());
            processMap.put("countKeyCclTime", new countKeyCclTime());
            processMap.put("countKeyCclTimestr", new countKeyCclTimestr());
            processMap.put("maxKeyRecord", new maxKeyRecord());
            processMap.put("maxKeyRecordTime", new maxKeyRecordTime());
            processMap.put("maxKeyRecordTimestr", new maxKeyRecordTimestr());
            processMap.put("maxKeyRecords", new maxKeyRecords());
            processMap.put("maxKeyRecordsTime", new maxKeyRecordsTime());
            processMap.put("maxKeyRecordsTimestr", new maxKeyRecordsTimestr());
            processMap.put("maxKeyCriteria", new maxKeyCriteria());
            processMap.put("maxKeyCriteriaTime", new maxKeyCriteriaTime());
            processMap.put("maxKeyCriteriaTimestr",
                    new maxKeyCriteriaTimestr());
            processMap.put("maxKeyCcl", new maxKeyCcl());
            processMap.put("maxKeyCclTime", new maxKeyCclTime());
            processMap.put("maxKeyCclTimestr", new maxKeyCclTimestr());
            processMap.put("maxKey", new maxKey());
            processMap.put("maxKeyTime", new maxKeyTime());
            processMap.put("maxKeyTimestr", new maxKeyTimestr());
            processMap.put("minKeyRecord", new minKeyRecord());
            processMap.put("minKeyRecordTime", new minKeyRecordTime());
            processMap.put("minKeyRecordTimestr", new minKeyRecordTimestr());
            processMap.put("minKey", new minKey());
            processMap.put("minKeyRecordsTime", new minKeyRecordsTime());
            processMap.put("minKeyRecordsTimestr", new minKeyRecordsTimestr());
            processMap.put("minKeyCriteria", new minKeyCriteria());
            processMap.put("minKeyCriteriaTime", new minKeyCriteriaTime());
            processMap.put("minKeyCriteriaTimestr",
                    new minKeyCriteriaTimestr());
            processMap.put("minKeyCcl", new minKeyCcl());
            processMap.put("minKeyCclTime", new minKeyCclTime());
            processMap.put("minKeyCclTimestr", new minKeyCclTimestr());
            processMap.put("minKeyTime", new minKeyTime());
            processMap.put("minKeyTimestr", new minKeyTimestr());
            processMap.put("minKeyRecords", new minKeyRecords());
            return processMap;
        }

        public static class sumKeyRecord extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyRecord() {
                super("sumKeyRecord");
            }

            public sumKeyRecord_args getEmptyArgsInstance() {
                return new sumKeyRecord_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyRecord_result result = new sumKeyRecord_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyRecord_result result = new sumKeyRecord_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyRecord_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyRecord(args.key, args.record, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class sumKeyRecordTime extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyRecordTime() {
                super("sumKeyRecordTime");
            }

            public sumKeyRecordTime_args getEmptyArgsInstance() {
                return new sumKeyRecordTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyRecordTime_result result = new sumKeyRecordTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyRecordTime_result result = new sumKeyRecordTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyRecordTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyRecordTime(args.key, args.record, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class sumKeyRecordTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyRecordTimestr() {
                super("sumKeyRecordTimestr");
            }

            public sumKeyRecordTimestr_args getEmptyArgsInstance() {
                return new sumKeyRecordTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyRecordTimestr_result result = new sumKeyRecordTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyRecordTimestr_result result = new sumKeyRecordTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyRecordTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyRecordTimestr(args.key, args.record, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class sumKeyRecords extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyRecords() {
                super("sumKeyRecords");
            }

            public sumKeyRecords_args getEmptyArgsInstance() {
                return new sumKeyRecords_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyRecords_result result = new sumKeyRecords_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyRecords_result result = new sumKeyRecords_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyRecords_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyRecords(args.key, args.records, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class sumKeyRecordsTime extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyRecordsTime() {
                super("sumKeyRecordsTime");
            }

            public sumKeyRecordsTime_args getEmptyArgsInstance() {
                return new sumKeyRecordsTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyRecordsTime_result result = new sumKeyRecordsTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyRecordsTime_result result = new sumKeyRecordsTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyRecordsTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyRecordsTime(args.key, args.records, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class sumKeyRecordsTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyRecordsTimestr() {
                super("sumKeyRecordsTimestr");
            }

            public sumKeyRecordsTimestr_args getEmptyArgsInstance() {
                return new sumKeyRecordsTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyRecordsTimestr_result result = new sumKeyRecordsTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyRecordsTimestr_result result = new sumKeyRecordsTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyRecordsTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyRecordsTimestr(args.key, args.records,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class sumKey extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKey() {
                super("sumKey");
            }

            public sumKey_args getEmptyArgsInstance() {
                return new sumKey_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKey_result result = new sumKey_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKey_result result = new sumKey_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKey_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKey(args.key, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class sumKeyTime extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyTime() {
                super("sumKeyTime");
            }

            public sumKeyTime_args getEmptyArgsInstance() {
                return new sumKeyTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyTime_result result = new sumKeyTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyTime_result result = new sumKeyTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyTime(args.key, args.timestamp, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class sumKeyTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyTimestr() {
                super("sumKeyTimestr");
            }

            public sumKeyTimestr_args getEmptyArgsInstance() {
                return new sumKeyTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyTimestr_result result = new sumKeyTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyTimestr_result result = new sumKeyTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyTimestr(args.key, args.timestamp, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class sumKeyCriteria extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyCriteria() {
                super("sumKeyCriteria");
            }

            public sumKeyCriteria_args getEmptyArgsInstance() {
                return new sumKeyCriteria_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyCriteria_result result = new sumKeyCriteria_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyCriteria_result result = new sumKeyCriteria_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyCriteria_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyCriteria(args.key, args.criteria, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class sumKeyCriteriaTime extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyCriteriaTime() {
                super("sumKeyCriteriaTime");
            }

            public sumKeyCriteriaTime_args getEmptyArgsInstance() {
                return new sumKeyCriteriaTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyCriteriaTime_result result = new sumKeyCriteriaTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyCriteriaTime_result result = new sumKeyCriteriaTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyCriteriaTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyCriteriaTime(args.key, args.criteria,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class sumKeyCriteriaTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyCriteriaTimestr() {
                super("sumKeyCriteriaTimestr");
            }

            public sumKeyCriteriaTimestr_args getEmptyArgsInstance() {
                return new sumKeyCriteriaTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyCriteriaTimestr_result result = new sumKeyCriteriaTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyCriteriaTimestr_result result = new sumKeyCriteriaTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyCriteriaTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyCriteriaTimestr(args.key, args.criteria,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class sumKeyCcl extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyCcl() {
                super("sumKeyCcl");
            }

            public sumKeyCcl_args getEmptyArgsInstance() {
                return new sumKeyCcl_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyCcl_result result = new sumKeyCcl_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyCcl_result result = new sumKeyCcl_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyCcl_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyCcl(args.key, args.ccl, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class sumKeyCclTime extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyCclTime() {
                super("sumKeyCclTime");
            }

            public sumKeyCclTime_args getEmptyArgsInstance() {
                return new sumKeyCclTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyCclTime_result result = new sumKeyCclTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyCclTime_result result = new sumKeyCclTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyCclTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyCclTime(args.key, args.ccl, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class sumKeyCclTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public sumKeyCclTimestr() {
                super("sumKeyCclTimestr");
            }

            public sumKeyCclTimestr_args getEmptyArgsInstance() {
                return new sumKeyCclTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        sumKeyCclTimestr_result result = new sumKeyCclTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        sumKeyCclTimestr_result result = new sumKeyCclTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, sumKeyCclTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.sumKeyCclTimestr(args.key, args.ccl, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class averageKeyRecord extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyRecord() {
                super("averageKeyRecord");
            }

            public averageKeyRecord_args getEmptyArgsInstance() {
                return new averageKeyRecord_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyRecord_result result = new averageKeyRecord_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyRecord_result result = new averageKeyRecord_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyRecord_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyRecord(args.key, args.record, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class averageKeyRecordTime extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyRecordTime() {
                super("averageKeyRecordTime");
            }

            public averageKeyRecordTime_args getEmptyArgsInstance() {
                return new averageKeyRecordTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyRecordTime_result result = new averageKeyRecordTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyRecordTime_result result = new averageKeyRecordTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyRecordTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyRecordTime(args.key, args.record,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class averageKeyRecordTimestr
                extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyRecordTimestr() {
                super("averageKeyRecordTimestr");
            }

            public averageKeyRecordTimestr_args getEmptyArgsInstance() {
                return new averageKeyRecordTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyRecordTimestr_result result = new averageKeyRecordTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyRecordTimestr_result result = new averageKeyRecordTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyRecordTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyRecordTimestr(args.key, args.record,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class averageKeyRecords extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyRecords() {
                super("averageKeyRecords");
            }

            public averageKeyRecords_args getEmptyArgsInstance() {
                return new averageKeyRecords_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyRecords_result result = new averageKeyRecords_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyRecords_result result = new averageKeyRecords_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyRecords_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyRecords(args.key, args.records, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class averageKeyRecordsTime extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyRecordsTime() {
                super("averageKeyRecordsTime");
            }

            public averageKeyRecordsTime_args getEmptyArgsInstance() {
                return new averageKeyRecordsTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyRecordsTime_result result = new averageKeyRecordsTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyRecordsTime_result result = new averageKeyRecordsTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyRecordsTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyRecordsTime(args.key, args.records,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class averageKeyRecordsTimestr
                extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyRecordsTimestr() {
                super("averageKeyRecordsTimestr");
            }

            public averageKeyRecordsTimestr_args getEmptyArgsInstance() {
                return new averageKeyRecordsTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyRecordsTimestr_result result = new averageKeyRecordsTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyRecordsTimestr_result result = new averageKeyRecordsTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyRecordsTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyRecordsTimestr(args.key, args.records,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class averageKey extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKey() {
                super("averageKey");
            }

            public averageKey_args getEmptyArgsInstance() {
                return new averageKey_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKey_result result = new averageKey_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKey_result result = new averageKey_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKey_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKey(args.key, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class averageKeyTime extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyTime() {
                super("averageKeyTime");
            }

            public averageKeyTime_args getEmptyArgsInstance() {
                return new averageKeyTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyTime_result result = new averageKeyTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyTime_result result = new averageKeyTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyTime(args.key, args.timestamp, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class averageKeyTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyTimestr() {
                super("averageKeyTimestr");
            }

            public averageKeyTimestr_args getEmptyArgsInstance() {
                return new averageKeyTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyTimestr_result result = new averageKeyTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyTimestr_result result = new averageKeyTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyTimestr(args.key, args.timestamp, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class averageKeyCriteria extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyCriteria() {
                super("averageKeyCriteria");
            }

            public averageKeyCriteria_args getEmptyArgsInstance() {
                return new averageKeyCriteria_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyCriteria_result result = new averageKeyCriteria_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyCriteria_result result = new averageKeyCriteria_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyCriteria_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyCriteria(args.key, args.criteria, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class averageKeyCriteriaTime extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyCriteriaTime() {
                super("averageKeyCriteriaTime");
            }

            public averageKeyCriteriaTime_args getEmptyArgsInstance() {
                return new averageKeyCriteriaTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyCriteriaTime_result result = new averageKeyCriteriaTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyCriteriaTime_result result = new averageKeyCriteriaTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyCriteriaTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyCriteriaTime(args.key, args.criteria,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class averageKeyCriteriaTimestr
                extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyCriteriaTimestr() {
                super("averageKeyCriteriaTimestr");
            }

            public averageKeyCriteriaTimestr_args getEmptyArgsInstance() {
                return new averageKeyCriteriaTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyCriteriaTimestr_result result = new averageKeyCriteriaTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyCriteriaTimestr_result result = new averageKeyCriteriaTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyCriteriaTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyCriteriaTimestr(args.key, args.criteria,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class averageKeyCcl extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyCcl() {
                super("averageKeyCcl");
            }

            public averageKeyCcl_args getEmptyArgsInstance() {
                return new averageKeyCcl_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyCcl_result result = new averageKeyCcl_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyCcl_result result = new averageKeyCcl_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyCcl_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyCcl(args.key, args.ccl, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class averageKeyCclTime extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyCclTime() {
                super("averageKeyCclTime");
            }

            public averageKeyCclTime_args getEmptyArgsInstance() {
                return new averageKeyCclTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyCclTime_result result = new averageKeyCclTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyCclTime_result result = new averageKeyCclTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyCclTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyCclTime(args.key, args.ccl, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class averageKeyCclTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public averageKeyCclTimestr() {
                super("averageKeyCclTimestr");
            }

            public averageKeyCclTimestr_args getEmptyArgsInstance() {
                return new averageKeyCclTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        averageKeyCclTimestr_result result = new averageKeyCclTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        averageKeyCclTimestr_result result = new averageKeyCclTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, averageKeyCclTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.averageKeyCclTimestr(args.key, args.ccl, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class countKeyRecord extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyRecord() {
                super("countKeyRecord");
            }

            public countKeyRecord_args getEmptyArgsInstance() {
                return new countKeyRecord_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyRecord_result result = new countKeyRecord_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyRecord_result result = new countKeyRecord_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyRecord_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyRecord(args.key, args.record, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class countKeyRecordTime extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyRecordTime() {
                super("countKeyRecordTime");
            }

            public countKeyRecordTime_args getEmptyArgsInstance() {
                return new countKeyRecordTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyRecordTime_result result = new countKeyRecordTime_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyRecordTime_result result = new countKeyRecordTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyRecordTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyRecordTime(args.key, args.record, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class countKeyRecordTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyRecordTimestr() {
                super("countKeyRecordTimestr");
            }

            public countKeyRecordTimestr_args getEmptyArgsInstance() {
                return new countKeyRecordTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyRecordTimestr_result result = new countKeyRecordTimestr_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyRecordTimestr_result result = new countKeyRecordTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyRecordTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyRecordTimestr(args.key, args.record,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class countKeyRecords extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyRecords() {
                super("countKeyRecords");
            }

            public countKeyRecords_args getEmptyArgsInstance() {
                return new countKeyRecords_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyRecords_result result = new countKeyRecords_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyRecords_result result = new countKeyRecords_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyRecords_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyRecords(args.key, args.records, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class countKeyRecordsTime extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyRecordsTime() {
                super("countKeyRecordsTime");
            }

            public countKeyRecordsTime_args getEmptyArgsInstance() {
                return new countKeyRecordsTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyRecordsTime_result result = new countKeyRecordsTime_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyRecordsTime_result result = new countKeyRecordsTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyRecordsTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyRecordsTime(args.key, args.records,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class countKeyRecordsTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyRecordsTimestr() {
                super("countKeyRecordsTimestr");
            }

            public countKeyRecordsTimestr_args getEmptyArgsInstance() {
                return new countKeyRecordsTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyRecordsTimestr_result result = new countKeyRecordsTimestr_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyRecordsTimestr_result result = new countKeyRecordsTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyRecordsTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyRecordsTimestr(args.key, args.records,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class countKey extends
                org.apache.thrift.AsyncProcessFunction {
            public countKey() {
                super("countKey");
            }

            public countKey_args getEmptyArgsInstance() {
                return new countKey_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKey_result result = new countKey_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKey_result result = new countKey_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKey_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKey(args.key, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class countKeyTime extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyTime() {
                super("countKeyTime");
            }

            public countKeyTime_args getEmptyArgsInstance() {
                return new countKeyTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyTime_result result = new countKeyTime_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyTime_result result = new countKeyTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyTime(args.key, args.timestamp, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class countKeyTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyTimestr() {
                super("countKeyTimestr");
            }

            public countKeyTimestr_args getEmptyArgsInstance() {
                return new countKeyTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyTimestr_result result = new countKeyTimestr_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyTimestr_result result = new countKeyTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyTimestr(args.key, args.timestamp, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class countKeyCriteria extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyCriteria() {
                super("countKeyCriteria");
            }

            public countKeyCriteria_args getEmptyArgsInstance() {
                return new countKeyCriteria_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyCriteria_result result = new countKeyCriteria_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyCriteria_result result = new countKeyCriteria_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyCriteria_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyCriteria(args.key, args.criteria, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class countKeyCriteriaTime extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyCriteriaTime() {
                super("countKeyCriteriaTime");
            }

            public countKeyCriteriaTime_args getEmptyArgsInstance() {
                return new countKeyCriteriaTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyCriteriaTime_result result = new countKeyCriteriaTime_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyCriteriaTime_result result = new countKeyCriteriaTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyCriteriaTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyCriteriaTime(args.key, args.criteria,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class countKeyCriteriaTimestr
                extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyCriteriaTimestr() {
                super("countKeyCriteriaTimestr");
            }

            public countKeyCriteriaTimestr_args getEmptyArgsInstance() {
                return new countKeyCriteriaTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyCriteriaTimestr_result result = new countKeyCriteriaTimestr_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyCriteriaTimestr_result result = new countKeyCriteriaTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyCriteriaTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyCriteriaTimestr(args.key, args.criteria,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class countKeyCcl extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyCcl() {
                super("countKeyCcl");
            }

            public countKeyCcl_args getEmptyArgsInstance() {
                return new countKeyCcl_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyCcl_result result = new countKeyCcl_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyCcl_result result = new countKeyCcl_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyCcl_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyCcl(args.key, args.ccl, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class countKeyCclTime extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyCclTime() {
                super("countKeyCclTime");
            }

            public countKeyCclTime_args getEmptyArgsInstance() {
                return new countKeyCclTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyCclTime_result result = new countKeyCclTime_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyCclTime_result result = new countKeyCclTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyCclTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyCclTime(args.key, args.ccl, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class countKeyCclTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public countKeyCclTimestr() {
                super("countKeyCclTimestr");
            }

            public countKeyCclTimestr_args getEmptyArgsInstance() {
                return new countKeyCclTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(java.lang.Long o) {
                        countKeyCclTimestr_result result = new countKeyCclTimestr_result();
                        result.success = o;
                        result.setSuccessIsSet(true);
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        countKeyCclTimestr_result result = new countKeyCclTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, countKeyCclTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.countKeyCclTimestr(args.key, args.ccl, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class maxKeyRecord extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyRecord() {
                super("maxKeyRecord");
            }

            public maxKeyRecord_args getEmptyArgsInstance() {
                return new maxKeyRecord_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyRecord_result result = new maxKeyRecord_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyRecord_result result = new maxKeyRecord_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyRecord_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyRecord(args.key, args.record, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class maxKeyRecordTime extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyRecordTime() {
                super("maxKeyRecordTime");
            }

            public maxKeyRecordTime_args getEmptyArgsInstance() {
                return new maxKeyRecordTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyRecordTime_result result = new maxKeyRecordTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyRecordTime_result result = new maxKeyRecordTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyRecordTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyRecordTime(args.key, args.record, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class maxKeyRecordTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyRecordTimestr() {
                super("maxKeyRecordTimestr");
            }

            public maxKeyRecordTimestr_args getEmptyArgsInstance() {
                return new maxKeyRecordTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyRecordTimestr_result result = new maxKeyRecordTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyRecordTimestr_result result = new maxKeyRecordTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyRecordTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyRecordTimestr(args.key, args.record, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class maxKeyRecords extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyRecords() {
                super("maxKeyRecords");
            }

            public maxKeyRecords_args getEmptyArgsInstance() {
                return new maxKeyRecords_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyRecords_result result = new maxKeyRecords_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyRecords_result result = new maxKeyRecords_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyRecords_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyRecords(args.key, args.records, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class maxKeyRecordsTime extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyRecordsTime() {
                super("maxKeyRecordsTime");
            }

            public maxKeyRecordsTime_args getEmptyArgsInstance() {
                return new maxKeyRecordsTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyRecordsTime_result result = new maxKeyRecordsTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyRecordsTime_result result = new maxKeyRecordsTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyRecordsTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyRecordsTime(args.key, args.records, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class maxKeyRecordsTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyRecordsTimestr() {
                super("maxKeyRecordsTimestr");
            }

            public maxKeyRecordsTimestr_args getEmptyArgsInstance() {
                return new maxKeyRecordsTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyRecordsTimestr_result result = new maxKeyRecordsTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyRecordsTimestr_result result = new maxKeyRecordsTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyRecordsTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyRecordsTimestr(args.key, args.records,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class maxKeyCriteria extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyCriteria() {
                super("maxKeyCriteria");
            }

            public maxKeyCriteria_args getEmptyArgsInstance() {
                return new maxKeyCriteria_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyCriteria_result result = new maxKeyCriteria_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyCriteria_result result = new maxKeyCriteria_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyCriteria_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyCriteria(args.key, args.criteria, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class maxKeyCriteriaTime extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyCriteriaTime() {
                super("maxKeyCriteriaTime");
            }

            public maxKeyCriteriaTime_args getEmptyArgsInstance() {
                return new maxKeyCriteriaTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyCriteriaTime_result result = new maxKeyCriteriaTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyCriteriaTime_result result = new maxKeyCriteriaTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyCriteriaTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyCriteriaTime(args.key, args.criteria,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class maxKeyCriteriaTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyCriteriaTimestr() {
                super("maxKeyCriteriaTimestr");
            }

            public maxKeyCriteriaTimestr_args getEmptyArgsInstance() {
                return new maxKeyCriteriaTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyCriteriaTimestr_result result = new maxKeyCriteriaTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyCriteriaTimestr_result result = new maxKeyCriteriaTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyCriteriaTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyCriteriaTimestr(args.key, args.criteria,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class maxKeyCcl extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyCcl() {
                super("maxKeyCcl");
            }

            public maxKeyCcl_args getEmptyArgsInstance() {
                return new maxKeyCcl_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyCcl_result result = new maxKeyCcl_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyCcl_result result = new maxKeyCcl_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyCcl_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyCcl(args.key, args.ccl, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class maxKeyCclTime extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyCclTime() {
                super("maxKeyCclTime");
            }

            public maxKeyCclTime_args getEmptyArgsInstance() {
                return new maxKeyCclTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyCclTime_result result = new maxKeyCclTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyCclTime_result result = new maxKeyCclTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyCclTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyCclTime(args.key, args.ccl, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class maxKeyCclTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyCclTimestr() {
                super("maxKeyCclTimestr");
            }

            public maxKeyCclTimestr_args getEmptyArgsInstance() {
                return new maxKeyCclTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyCclTimestr_result result = new maxKeyCclTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyCclTimestr_result result = new maxKeyCclTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyCclTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyCclTimestr(args.key, args.ccl, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class maxKey extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKey() {
                super("maxKey");
            }

            public maxKey_args getEmptyArgsInstance() {
                return new maxKey_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKey_result result = new maxKey_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKey_result result = new maxKey_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKey_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKey(args.key, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class maxKeyTime extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyTime() {
                super("maxKeyTime");
            }

            public maxKeyTime_args getEmptyArgsInstance() {
                return new maxKeyTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyTime_result result = new maxKeyTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyTime_result result = new maxKeyTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyTime(args.key, args.timestamp, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class maxKeyTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public maxKeyTimestr() {
                super("maxKeyTimestr");
            }

            public maxKeyTimestr_args getEmptyArgsInstance() {
                return new maxKeyTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        maxKeyTimestr_result result = new maxKeyTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        maxKeyTimestr_result result = new maxKeyTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, maxKeyTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.maxKeyTimestr(args.key, args.timestamp, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class minKeyRecord extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyRecord() {
                super("minKeyRecord");
            }

            public minKeyRecord_args getEmptyArgsInstance() {
                return new minKeyRecord_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyRecord_result result = new minKeyRecord_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyRecord_result result = new minKeyRecord_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyRecord_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyRecord(args.key, args.record, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class minKeyRecordTime extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyRecordTime() {
                super("minKeyRecordTime");
            }

            public minKeyRecordTime_args getEmptyArgsInstance() {
                return new minKeyRecordTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyRecordTime_result result = new minKeyRecordTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyRecordTime_result result = new minKeyRecordTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyRecordTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyRecordTime(args.key, args.record, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class minKeyRecordTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyRecordTimestr() {
                super("minKeyRecordTimestr");
            }

            public minKeyRecordTimestr_args getEmptyArgsInstance() {
                return new minKeyRecordTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyRecordTimestr_result result = new minKeyRecordTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyRecordTimestr_result result = new minKeyRecordTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyRecordTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyRecordTimestr(args.key, args.record, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class minKey extends
                org.apache.thrift.AsyncProcessFunction {
            public minKey() {
                super("minKey");
            }

            public minKey_args getEmptyArgsInstance() {
                return new minKey_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKey_result result = new minKey_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKey_result result = new minKey_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKey_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKey(args.key, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class minKeyRecordsTime extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyRecordsTime() {
                super("minKeyRecordsTime");
            }

            public minKeyRecordsTime_args getEmptyArgsInstance() {
                return new minKeyRecordsTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyRecordsTime_result result = new minKeyRecordsTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyRecordsTime_result result = new minKeyRecordsTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyRecordsTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyRecordsTime(args.key, args.records, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class minKeyRecordsTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyRecordsTimestr() {
                super("minKeyRecordsTimestr");
            }

            public minKeyRecordsTimestr_args getEmptyArgsInstance() {
                return new minKeyRecordsTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyRecordsTimestr_result result = new minKeyRecordsTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyRecordsTimestr_result result = new minKeyRecordsTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyRecordsTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyRecordsTimestr(args.key, args.records,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class minKeyCriteria extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyCriteria() {
                super("minKeyCriteria");
            }

            public minKeyCriteria_args getEmptyArgsInstance() {
                return new minKeyCriteria_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyCriteria_result result = new minKeyCriteria_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyCriteria_result result = new minKeyCriteria_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyCriteria_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyCriteria(args.key, args.criteria, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class minKeyCriteriaTime extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyCriteriaTime() {
                super("minKeyCriteriaTime");
            }

            public minKeyCriteriaTime_args getEmptyArgsInstance() {
                return new minKeyCriteriaTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyCriteriaTime_result result = new minKeyCriteriaTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyCriteriaTime_result result = new minKeyCriteriaTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyCriteriaTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyCriteriaTime(args.key, args.criteria,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class minKeyCriteriaTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyCriteriaTimestr() {
                super("minKeyCriteriaTimestr");
            }

            public minKeyCriteriaTimestr_args getEmptyArgsInstance() {
                return new minKeyCriteriaTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyCriteriaTimestr_result result = new minKeyCriteriaTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyCriteriaTimestr_result result = new minKeyCriteriaTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyCriteriaTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyCriteriaTimestr(args.key, args.criteria,
                        args.timestamp, args.creds, args.transaction,
                        args.environment, resultHandler);
            }
        }

        public static class minKeyCcl extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyCcl() {
                super("minKeyCcl");
            }

            public minKeyCcl_args getEmptyArgsInstance() {
                return new minKeyCcl_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyCcl_result result = new minKeyCcl_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyCcl_result result = new minKeyCcl_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyCcl_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyCcl(args.key, args.ccl, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class minKeyCclTime extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyCclTime() {
                super("minKeyCclTime");
            }

            public minKeyCclTime_args getEmptyArgsInstance() {
                return new minKeyCclTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyCclTime_result result = new minKeyCclTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyCclTime_result result = new minKeyCclTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyCclTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyCclTime(args.key, args.ccl, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class minKeyCclTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyCclTimestr() {
                super("minKeyCclTimestr");
            }

            public minKeyCclTimestr_args getEmptyArgsInstance() {
                return new minKeyCclTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyCclTimestr_result result = new minKeyCclTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyCclTimestr_result result = new minKeyCclTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyCclTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyCclTimestr(args.key, args.ccl, args.timestamp,
                        args.creds, args.transaction, args.environment,
                        resultHandler);
            }
        }

        public static class minKeyTime extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyTime() {
                super("minKeyTime");
            }

            public minKeyTime_args getEmptyArgsInstance() {
                return new minKeyTime_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyTime_result result = new minKeyTime_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyTime_result result = new minKeyTime_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyTime_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyTime(args.key, args.timestamp, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class minKeyTimestr extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyTimestr() {
                super("minKeyTimestr");
            }

            public minKeyTimestr_args getEmptyArgsInstance() {
                return new minKeyTimestr_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyTimestr_result result = new minKeyTimestr_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyTimestr_result result = new minKeyTimestr_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.ParseException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.ParseException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex5 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx5IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyTimestr_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyTimestr(args.key, args.timestamp, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

        public static class minKeyRecords extends
                org.apache.thrift.AsyncProcessFunction {
            public minKeyRecords() {
                super("minKeyRecords");
            }

            public minKeyRecords_args getEmptyArgsInstance() {
                return new minKeyRecords_args();
            }

            public org.apache.thrift.async.AsyncMethodCallback getResultHandler(
                    final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb,
                    final int seqid) {
                final org.apache.thrift.AsyncProcessFunction fcall = this;
                return new org.apache.thrift.async.AsyncMethodCallback() {
                    public void onComplete(
                            com.cinchapi.concourse.thrift.TObject o) {
                        minKeyRecords_result result = new minKeyRecords_result();
                        result.success = o;
                        try {
                            fcall.sendResponse(fb, result,
                                    org.apache.thrift.protocol.TMessageType.REPLY,
                                    seqid);
                        }
                        catch (org.apache.thrift.transport.TTransportException e) {
                            _LOGGER.error(
                                    "TTransportException writing to internal frame buffer",
                                    e);
                            fb.close();
                        }
                        catch (java.lang.Exception e) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    e);
                            onError(e);
                        }
                    }

                    public void onError(java.lang.Exception e) {
                        byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
                        org.apache.thrift.TSerializable msg;
                        minKeyRecords_result result = new minKeyRecords_result();
                        if(e instanceof com.cinchapi.concourse.thrift.SecurityException) {
                            result.ex = (com.cinchapi.concourse.thrift.SecurityException) e;
                            result.setExIsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.TransactionException) {
                            result.ex2 = (com.cinchapi.concourse.thrift.TransactionException) e;
                            result.setEx2IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.PermissionException) {
                            result.ex3 = (com.cinchapi.concourse.thrift.PermissionException) e;
                            result.setEx3IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof com.cinchapi.concourse.thrift.InvalidOperationException) {
                            result.ex4 = (com.cinchapi.concourse.thrift.InvalidOperationException) e;
                            result.setEx4IsSet(true);
                            msg = result;
                        }
                        else if(e instanceof org.apache.thrift.transport.TTransportException) {
                            _LOGGER.error("TTransportException inside handler",
                                    e);
                            fb.close();
                            return;
                        }
                        else if(e instanceof org.apache.thrift.TApplicationException) {
                            _LOGGER.error(
                                    "TApplicationException inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = (org.apache.thrift.TApplicationException) e;
                        }
                        else {
                            _LOGGER.error("Exception inside handler", e);
                            msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
                            msg = new org.apache.thrift.TApplicationException(
                                    org.apache.thrift.TApplicationException.INTERNAL_ERROR,
                                    e.getMessage());
                        }
                        try {
                            fcall.sendResponse(fb, msg, msgType, seqid);
                        }
                        catch (java.lang.Exception ex) {
                            _LOGGER.error(
                                    "Exception writing to internal frame buffer",
                                    ex);
                            fb.close();
                        }
                    }
                };
            }

            protected boolean isOneway() {
                return false;
            }

            public void start(I iface, minKeyRecords_args args,
                    org.apache.thrift.async.AsyncMethodCallback resultHandler)
                    throws org.apache.thrift.TException {
                iface.minKeyRecords(args.key, args.records, args.creds,
                        args.transaction, args.environment, resultHandler);
            }
        }

    }

    public static class sumKeyRecord_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecord_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecord_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecord_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(sumKeyRecord_args.class, metaDataMap);
        }

        public sumKeyRecord_args() {}

        public sumKeyRecord_args(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecord_args(sumKeyRecord_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyRecord_args deepCopy() {
            return new sumKeyRecord_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyRecord_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public sumKeyRecord_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyRecord_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyRecord_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyRecord_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecord_args)
                return this.equals((sumKeyRecord_args) that);
            return false;
        }

        public boolean equals(sumKeyRecord_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecord_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecord_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecord_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecord_argsStandardScheme getScheme() {
                return new sumKeyRecord_argsStandardScheme();
            }
        }

        private static class sumKeyRecord_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecord_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecord_argsTupleScheme getScheme() {
                return new sumKeyRecord_argsTupleScheme();
            }
        }

        private static class sumKeyRecord_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecord_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecord_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecord_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecord_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecord_result.class, metaDataMap);
        }

        public sumKeyRecord_result() {}

        public sumKeyRecord_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecord_result(sumKeyRecord_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public sumKeyRecord_result deepCopy() {
            return new sumKeyRecord_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyRecord_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyRecord_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyRecord_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public sumKeyRecord_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public sumKeyRecord_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecord_result)
                return this.equals((sumKeyRecord_result) that);
            return false;
        }

        public boolean equals(sumKeyRecord_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecord_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecord_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecord_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecord_resultStandardScheme getScheme() {
                return new sumKeyRecord_resultStandardScheme();
            }
        }

        private static class sumKeyRecord_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecord_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecord_resultTupleScheme getScheme() {
                return new sumKeyRecord_resultTupleScheme();
            }
        }

        private static class sumKeyRecord_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecordTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecordTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecordTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecordTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private static final int __TIMESTAMP_ISSET_ID = 1;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecordTime_args.class, metaDataMap);
        }

        public sumKeyRecordTime_args() {}

        public sumKeyRecordTime_args(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecordTime_args(sumKeyRecordTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyRecordTime_args deepCopy() {
            return new sumKeyRecordTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyRecordTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public sumKeyRecordTime_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public sumKeyRecordTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyRecordTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyRecordTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyRecordTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecordTime_args)
                return this.equals((sumKeyRecordTime_args) that);
            return false;
        }

        public boolean equals(sumKeyRecordTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecordTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecordTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecordTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordTime_argsStandardScheme getScheme() {
                return new sumKeyRecordTime_argsStandardScheme();
            }
        }

        private static class sumKeyRecordTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecordTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordTime_argsTupleScheme getScheme() {
                return new sumKeyRecordTime_argsTupleScheme();
            }
        }

        private static class sumKeyRecordTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecordTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecordTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecordTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecordTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecordTime_result.class, metaDataMap);
        }

        public sumKeyRecordTime_result() {}

        public sumKeyRecordTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecordTime_result(sumKeyRecordTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public sumKeyRecordTime_result deepCopy() {
            return new sumKeyRecordTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyRecordTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyRecordTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyRecordTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public sumKeyRecordTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public sumKeyRecordTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecordTime_result)
                return this.equals((sumKeyRecordTime_result) that);
            return false;
        }

        public boolean equals(sumKeyRecordTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecordTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecordTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecordTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordTime_resultStandardScheme getScheme() {
                return new sumKeyRecordTime_resultStandardScheme();
            }
        }

        private static class sumKeyRecordTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecordTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordTime_resultTupleScheme getScheme() {
                return new sumKeyRecordTime_resultTupleScheme();
            }
        }

        private static class sumKeyRecordTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecordTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecordTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecordTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecordTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecordTimestr_args.class, metaDataMap);
        }

        public sumKeyRecordTimestr_args() {}

        public sumKeyRecordTimestr_args(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecordTimestr_args(sumKeyRecordTimestr_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyRecordTimestr_args deepCopy() {
            return new sumKeyRecordTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyRecordTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public sumKeyRecordTimestr_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public sumKeyRecordTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyRecordTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyRecordTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyRecordTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecordTimestr_args)
                return this.equals((sumKeyRecordTimestr_args) that);
            return false;
        }

        public boolean equals(sumKeyRecordTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecordTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecordTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecordTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordTimestr_argsStandardScheme getScheme() {
                return new sumKeyRecordTimestr_argsStandardScheme();
            }
        }

        private static class sumKeyRecordTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecordTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordTimestr_argsTupleScheme getScheme() {
                return new sumKeyRecordTimestr_argsTupleScheme();
            }
        }

        private static class sumKeyRecordTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecordTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecordTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecordTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecordTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecordTimestr_result.class, metaDataMap);
        }

        public sumKeyRecordTimestr_result() {}

        public sumKeyRecordTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecordTimestr_result(sumKeyRecordTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public sumKeyRecordTimestr_result deepCopy() {
            return new sumKeyRecordTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyRecordTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyRecordTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyRecordTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public sumKeyRecordTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public sumKeyRecordTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public sumKeyRecordTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecordTimestr_result)
                return this.equals((sumKeyRecordTimestr_result) that);
            return false;
        }

        public boolean equals(sumKeyRecordTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecordTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecordTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecordTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordTimestr_resultStandardScheme getScheme() {
                return new sumKeyRecordTimestr_resultStandardScheme();
            }
        }

        private static class sumKeyRecordTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecordTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordTimestr_resultTupleScheme getScheme() {
                return new sumKeyRecordTimestr_resultTupleScheme();
            }
        }

        private static class sumKeyRecordTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecords_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecords_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecords_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecords_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecords_args.class, metaDataMap);
        }

        public sumKeyRecords_args() {}

        public sumKeyRecords_args(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecords_args(sumKeyRecords_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyRecords_args deepCopy() {
            return new sumKeyRecords_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyRecords_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public sumKeyRecords_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyRecords_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyRecords_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyRecords_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecords_args)
                return this.equals((sumKeyRecords_args) that);
            return false;
        }

        public boolean equals(sumKeyRecords_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecords_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecords_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecords_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecords_argsStandardScheme getScheme() {
                return new sumKeyRecords_argsStandardScheme();
            }
        }

        private static class sumKeyRecords_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list0 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list0.size);
                                long _elem1;
                                for (int _i2 = 0; _i2 < _list0.size; ++_i2) {
                                    _elem1 = iprot.readI64();
                                    struct.records.add(_elem1);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter3 : struct.records) {
                            oprot.writeI64(_iter3);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecords_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecords_argsTupleScheme getScheme() {
                return new sumKeyRecords_argsTupleScheme();
            }
        }

        private static class sumKeyRecords_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter4 : struct.records) {
                            oprot.writeI64(_iter4);
                        }
                    }
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list5.size);
                        long _elem6;
                        for (int _i7 = 0; _i7 < _list5.size; ++_i7) {
                            _elem6 = iprot.readI64();
                            struct.records.add(_elem6);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecords_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecords_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecords_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecords_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecords_result.class, metaDataMap);
        }

        public sumKeyRecords_result() {}

        public sumKeyRecords_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecords_result(sumKeyRecords_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public sumKeyRecords_result deepCopy() {
            return new sumKeyRecords_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyRecords_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyRecords_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyRecords_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public sumKeyRecords_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public sumKeyRecords_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecords_result)
                return this.equals((sumKeyRecords_result) that);
            return false;
        }

        public boolean equals(sumKeyRecords_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecords_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecords_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecords_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecords_resultStandardScheme getScheme() {
                return new sumKeyRecords_resultStandardScheme();
            }
        }

        private static class sumKeyRecords_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecords_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecords_resultTupleScheme getScheme() {
                return new sumKeyRecords_resultTupleScheme();
            }
        }

        private static class sumKeyRecords_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecordsTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecordsTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecordsTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecordsTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecordsTime_args.class, metaDataMap);
        }

        public sumKeyRecordsTime_args() {}

        public sumKeyRecordsTime_args(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecordsTime_args(sumKeyRecordsTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyRecordsTime_args deepCopy() {
            return new sumKeyRecordsTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyRecordsTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public sumKeyRecordsTime_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public sumKeyRecordsTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyRecordsTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyRecordsTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyRecordsTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecordsTime_args)
                return this.equals((sumKeyRecordsTime_args) that);
            return false;
        }

        public boolean equals(sumKeyRecordsTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecordsTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecordsTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecordsTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordsTime_argsStandardScheme getScheme() {
                return new sumKeyRecordsTime_argsStandardScheme();
            }
        }

        private static class sumKeyRecordsTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list8 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list8.size);
                                long _elem9;
                                for (int _i10 = 0; _i10 < _list8.size; ++_i10) {
                                    _elem9 = iprot.readI64();
                                    struct.records.add(_elem9);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter11 : struct.records) {
                            oprot.writeI64(_iter11);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecordsTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordsTime_argsTupleScheme getScheme() {
                return new sumKeyRecordsTime_argsTupleScheme();
            }
        }

        private static class sumKeyRecordsTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter12 : struct.records) {
                            oprot.writeI64(_iter12);
                        }
                    }
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list13.size);
                        long _elem14;
                        for (int _i15 = 0; _i15 < _list13.size; ++_i15) {
                            _elem14 = iprot.readI64();
                            struct.records.add(_elem14);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecordsTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecordsTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecordsTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecordsTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecordsTime_result.class, metaDataMap);
        }

        public sumKeyRecordsTime_result() {}

        public sumKeyRecordsTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecordsTime_result(sumKeyRecordsTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public sumKeyRecordsTime_result deepCopy() {
            return new sumKeyRecordsTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyRecordsTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyRecordsTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyRecordsTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public sumKeyRecordsTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public sumKeyRecordsTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecordsTime_result)
                return this.equals((sumKeyRecordsTime_result) that);
            return false;
        }

        public boolean equals(sumKeyRecordsTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecordsTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecordsTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecordsTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordsTime_resultStandardScheme getScheme() {
                return new sumKeyRecordsTime_resultStandardScheme();
            }
        }

        private static class sumKeyRecordsTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecordsTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordsTime_resultTupleScheme getScheme() {
                return new sumKeyRecordsTime_resultTupleScheme();
            }
        }

        private static class sumKeyRecordsTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecordsTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecordsTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecordsTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecordsTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecordsTimestr_args.class, metaDataMap);
        }

        public sumKeyRecordsTimestr_args() {}

        public sumKeyRecordsTimestr_args(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecordsTimestr_args(sumKeyRecordsTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyRecordsTimestr_args deepCopy() {
            return new sumKeyRecordsTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyRecordsTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public sumKeyRecordsTimestr_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public sumKeyRecordsTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyRecordsTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyRecordsTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyRecordsTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecordsTimestr_args)
                return this.equals((sumKeyRecordsTimestr_args) that);
            return false;
        }

        public boolean equals(sumKeyRecordsTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecordsTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecordsTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecordsTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordsTimestr_argsStandardScheme getScheme() {
                return new sumKeyRecordsTimestr_argsStandardScheme();
            }
        }

        private static class sumKeyRecordsTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list16 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list16.size);
                                long _elem17;
                                for (int _i18 = 0; _i18 < _list16.size; ++_i18) {
                                    _elem17 = iprot.readI64();
                                    struct.records.add(_elem17);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter19 : struct.records) {
                            oprot.writeI64(_iter19);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecordsTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordsTimestr_argsTupleScheme getScheme() {
                return new sumKeyRecordsTimestr_argsTupleScheme();
            }
        }

        private static class sumKeyRecordsTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter20 : struct.records) {
                            oprot.writeI64(_iter20);
                        }
                    }
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list21 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list21.size);
                        long _elem22;
                        for (int _i23 = 0; _i23 < _list21.size; ++_i23) {
                            _elem22 = iprot.readI64();
                            struct.records.add(_elem22);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyRecordsTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyRecordsTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyRecordsTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyRecordsTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyRecordsTimestr_result.class, metaDataMap);
        }

        public sumKeyRecordsTimestr_result() {}

        public sumKeyRecordsTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyRecordsTimestr_result(sumKeyRecordsTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public sumKeyRecordsTimestr_result deepCopy() {
            return new sumKeyRecordsTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyRecordsTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyRecordsTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyRecordsTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public sumKeyRecordsTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public sumKeyRecordsTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public sumKeyRecordsTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyRecordsTimestr_result)
                return this.equals((sumKeyRecordsTimestr_result) that);
            return false;
        }

        public boolean equals(sumKeyRecordsTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyRecordsTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyRecordsTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyRecordsTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordsTimestr_resultStandardScheme getScheme() {
                return new sumKeyRecordsTimestr_resultStandardScheme();
            }
        }

        private static class sumKeyRecordsTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyRecordsTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyRecordsTimestr_resultTupleScheme getScheme() {
                return new sumKeyRecordsTimestr_resultTupleScheme();
            }
        }

        private static class sumKeyRecordsTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKey_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKey_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 3);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKey_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKey_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CREDS((short) 2, "creds"),
            TRANSACTION((short) 3, "transaction"),
            ENVIRONMENT((short) 4, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CREDS
                    return CREDS;
                case 3: // TRANSACTION
                    return TRANSACTION;
                case 4: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(sumKey_args.class, metaDataMap);
        }

        public sumKey_args() {}

        public sumKey_args(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKey_args(sumKey_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKey_args deepCopy() {
            return new sumKey_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKey_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKey_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKey_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKey_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKey_args)
                return this.equals((sumKey_args) that);
            return false;
        }

        public boolean equals(sumKey_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKey_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKey_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKey_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKey_argsStandardScheme getScheme() {
                return new sumKey_argsStandardScheme();
            }
        }

        private static class sumKey_argsStandardScheme
                extends org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKey_args struct) throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKey_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKey_argsTupleScheme getScheme() {
                return new sumKey_argsTupleScheme();
            }
        }

        private static class sumKey_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCreds()) {
                    optionals.set(1);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(2);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(3);
                }
                oprot.writeBitSet(optionals, 4);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(4);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKey_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKey_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKey_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKey_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(sumKey_result.class, metaDataMap);
        }

        public sumKey_result() {}

        public sumKey_result(com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKey_result(sumKey_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public sumKey_result deepCopy() {
            return new sumKey_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKey_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKey_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKey_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public sumKey_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public sumKey_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKey_result)
                return this.equals((sumKey_result) that);
            return false;
        }

        public boolean equals(sumKey_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKey_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKey_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKey_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKey_resultStandardScheme getScheme() {
                return new sumKey_resultStandardScheme();
            }
        }

        private static class sumKey_resultStandardScheme
                extends org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKey_result struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKey_result struct) throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKey_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKey_resultTupleScheme getScheme() {
                return new sumKey_resultTupleScheme();
            }
        }

        private static class sumKey_resultTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKey_result struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKey_result struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            TIMESTAMP((short) 2, "timestamp"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // TIMESTAMP
                    return TIMESTAMP;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(sumKeyTime_args.class, metaDataMap);
        }

        public sumKeyTime_args() {}

        public sumKeyTime_args(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyTime_args(sumKeyTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyTime_args deepCopy() {
            return new sumKeyTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public sumKeyTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyTime_args)
                return this.equals((sumKeyTime_args) that);
            return false;
        }

        public boolean equals(sumKeyTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyTime_argsStandardScheme getScheme() {
                return new sumKeyTime_argsStandardScheme();
            }
        }

        private static class sumKeyTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyTime_argsTupleScheme getScheme() {
                return new sumKeyTime_argsTupleScheme();
            }
        }

        private static class sumKeyTime_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(sumKeyTime_result.class, metaDataMap);
        }

        public sumKeyTime_result() {}

        public sumKeyTime_result(com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyTime_result(sumKeyTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public sumKeyTime_result deepCopy() {
            return new sumKeyTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public sumKeyTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public sumKeyTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyTime_result)
                return this.equals((sumKeyTime_result) that);
            return false;
        }

        public boolean equals(sumKeyTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyTime_resultStandardScheme getScheme() {
                return new sumKeyTime_resultStandardScheme();
            }
        }

        private static class sumKeyTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyTime_resultTupleScheme getScheme() {
                return new sumKeyTime_resultTupleScheme();
            }
        }

        private static class sumKeyTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            TIMESTAMP((short) 2, "timestamp"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // TIMESTAMP
                    return TIMESTAMP;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyTimestr_args.class, metaDataMap);
        }

        public sumKeyTimestr_args() {}

        public sumKeyTimestr_args(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyTimestr_args(sumKeyTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyTimestr_args deepCopy() {
            return new sumKeyTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public sumKeyTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyTimestr_args)
                return this.equals((sumKeyTimestr_args) that);
            return false;
        }

        public boolean equals(sumKeyTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyTimestr_argsStandardScheme getScheme() {
                return new sumKeyTimestr_argsStandardScheme();
            }
        }

        private static class sumKeyTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyTimestr_argsTupleScheme getScheme() {
                return new sumKeyTimestr_argsTupleScheme();
            }
        }

        private static class sumKeyTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyTimestr_result.class, metaDataMap);
        }

        public sumKeyTimestr_result() {}

        public sumKeyTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyTimestr_result(sumKeyTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public sumKeyTimestr_result deepCopy() {
            return new sumKeyTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public sumKeyTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public sumKeyTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public sumKeyTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyTimestr_result)
                return this.equals((sumKeyTimestr_result) that);
            return false;
        }

        public boolean equals(sumKeyTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyTimestr_resultStandardScheme getScheme() {
                return new sumKeyTimestr_resultStandardScheme();
            }
        }

        private static class sumKeyTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyTimestr_resultTupleScheme getScheme() {
                return new sumKeyTimestr_resultTupleScheme();
            }
        }

        private static class sumKeyTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCriteria_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCriteria_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCriteria_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCriteria_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyCriteria_args.class, metaDataMap);
        }

        public sumKeyCriteria_args() {}

        public sumKeyCriteria_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCriteria_args(sumKeyCriteria_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyCriteria_args deepCopy() {
            return new sumKeyCriteria_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyCriteria_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public sumKeyCriteria_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyCriteria_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyCriteria_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyCriteria_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCriteria_args)
                return this.equals((sumKeyCriteria_args) that);
            return false;
        }

        public boolean equals(sumKeyCriteria_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCriteria_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCriteria_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCriteria_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteria_argsStandardScheme getScheme() {
                return new sumKeyCriteria_argsStandardScheme();
            }
        }

        private static class sumKeyCriteria_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCriteria_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteria_argsTupleScheme getScheme() {
                return new sumKeyCriteria_argsTupleScheme();
            }
        }

        private static class sumKeyCriteria_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCriteria_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCriteria_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCriteria_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCriteria_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyCriteria_result.class, metaDataMap);
        }

        public sumKeyCriteria_result() {}

        public sumKeyCriteria_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCriteria_result(sumKeyCriteria_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public sumKeyCriteria_result deepCopy() {
            return new sumKeyCriteria_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyCriteria_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyCriteria_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyCriteria_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public sumKeyCriteria_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public sumKeyCriteria_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCriteria_result)
                return this.equals((sumKeyCriteria_result) that);
            return false;
        }

        public boolean equals(sumKeyCriteria_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCriteria_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCriteria_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCriteria_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteria_resultStandardScheme getScheme() {
                return new sumKeyCriteria_resultStandardScheme();
            }
        }

        private static class sumKeyCriteria_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCriteria_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteria_resultTupleScheme getScheme() {
                return new sumKeyCriteria_resultTupleScheme();
            }
        }

        private static class sumKeyCriteria_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCriteriaTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCriteriaTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCriteriaTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCriteriaTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyCriteriaTime_args.class, metaDataMap);
        }

        public sumKeyCriteriaTime_args() {}

        public sumKeyCriteriaTime_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCriteriaTime_args(sumKeyCriteriaTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyCriteriaTime_args deepCopy() {
            return new sumKeyCriteriaTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyCriteriaTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public sumKeyCriteriaTime_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public sumKeyCriteriaTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyCriteriaTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyCriteriaTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyCriteriaTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCriteriaTime_args)
                return this.equals((sumKeyCriteriaTime_args) that);
            return false;
        }

        public boolean equals(sumKeyCriteriaTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCriteriaTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCriteriaTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCriteriaTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteriaTime_argsStandardScheme getScheme() {
                return new sumKeyCriteriaTime_argsStandardScheme();
            }
        }

        private static class sumKeyCriteriaTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCriteriaTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteriaTime_argsTupleScheme getScheme() {
                return new sumKeyCriteriaTime_argsTupleScheme();
            }
        }

        private static class sumKeyCriteriaTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCriteriaTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCriteriaTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCriteriaTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCriteriaTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyCriteriaTime_result.class, metaDataMap);
        }

        public sumKeyCriteriaTime_result() {}

        public sumKeyCriteriaTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCriteriaTime_result(sumKeyCriteriaTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public sumKeyCriteriaTime_result deepCopy() {
            return new sumKeyCriteriaTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyCriteriaTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyCriteriaTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyCriteriaTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public sumKeyCriteriaTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public sumKeyCriteriaTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCriteriaTime_result)
                return this.equals((sumKeyCriteriaTime_result) that);
            return false;
        }

        public boolean equals(sumKeyCriteriaTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCriteriaTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCriteriaTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCriteriaTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteriaTime_resultStandardScheme getScheme() {
                return new sumKeyCriteriaTime_resultStandardScheme();
            }
        }

        private static class sumKeyCriteriaTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCriteriaTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteriaTime_resultTupleScheme getScheme() {
                return new sumKeyCriteriaTime_resultTupleScheme();
            }
        }

        private static class sumKeyCriteriaTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCriteriaTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCriteriaTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCriteriaTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCriteriaTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyCriteriaTimestr_args.class, metaDataMap);
        }

        public sumKeyCriteriaTimestr_args() {}

        public sumKeyCriteriaTimestr_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCriteriaTimestr_args(sumKeyCriteriaTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyCriteriaTimestr_args deepCopy() {
            return new sumKeyCriteriaTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyCriteriaTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public sumKeyCriteriaTimestr_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public sumKeyCriteriaTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyCriteriaTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyCriteriaTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyCriteriaTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCriteriaTimestr_args)
                return this.equals((sumKeyCriteriaTimestr_args) that);
            return false;
        }

        public boolean equals(sumKeyCriteriaTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCriteriaTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCriteriaTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCriteriaTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteriaTimestr_argsStandardScheme getScheme() {
                return new sumKeyCriteriaTimestr_argsStandardScheme();
            }
        }

        private static class sumKeyCriteriaTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCriteriaTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteriaTimestr_argsTupleScheme getScheme() {
                return new sumKeyCriteriaTimestr_argsTupleScheme();
            }
        }

        private static class sumKeyCriteriaTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCriteriaTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCriteriaTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCriteriaTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCriteriaTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyCriteriaTimestr_result.class, metaDataMap);
        }

        public sumKeyCriteriaTimestr_result() {}

        public sumKeyCriteriaTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCriteriaTimestr_result(
                sumKeyCriteriaTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public sumKeyCriteriaTimestr_result deepCopy() {
            return new sumKeyCriteriaTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyCriteriaTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyCriteriaTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyCriteriaTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public sumKeyCriteriaTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public sumKeyCriteriaTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public sumKeyCriteriaTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCriteriaTimestr_result)
                return this.equals((sumKeyCriteriaTimestr_result) that);
            return false;
        }

        public boolean equals(sumKeyCriteriaTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCriteriaTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCriteriaTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCriteriaTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteriaTimestr_resultStandardScheme getScheme() {
                return new sumKeyCriteriaTimestr_resultStandardScheme();
            }
        }

        private static class sumKeyCriteriaTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCriteriaTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCriteriaTimestr_resultTupleScheme getScheme() {
                return new sumKeyCriteriaTimestr_resultTupleScheme();
            }
        }

        private static class sumKeyCriteriaTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCcl_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCcl_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCcl_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCcl_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(sumKeyCcl_args.class, metaDataMap);
        }

        public sumKeyCcl_args() {}

        public sumKeyCcl_args(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCcl_args(sumKeyCcl_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyCcl_args deepCopy() {
            return new sumKeyCcl_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyCcl_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public sumKeyCcl_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyCcl_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyCcl_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyCcl_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCcl_args)
                return this.equals((sumKeyCcl_args) that);
            return false;
        }

        public boolean equals(sumKeyCcl_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCcl_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCcl_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCcl_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCcl_argsStandardScheme getScheme() {
                return new sumKeyCcl_argsStandardScheme();
            }
        }

        private static class sumKeyCcl_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCcl_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCcl_args struct) throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCcl_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCcl_argsTupleScheme getScheme() {
                return new sumKeyCcl_argsTupleScheme();
            }
        }

        private static class sumKeyCcl_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCcl_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCcl_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCcl_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCcl_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCcl_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCcl_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(sumKeyCcl_result.class, metaDataMap);
        }

        public sumKeyCcl_result() {}

        public sumKeyCcl_result(com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCcl_result(sumKeyCcl_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public sumKeyCcl_result deepCopy() {
            return new sumKeyCcl_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyCcl_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyCcl_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyCcl_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public sumKeyCcl_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public sumKeyCcl_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public sumKeyCcl_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCcl_result)
                return this.equals((sumKeyCcl_result) that);
            return false;
        }

        public boolean equals(sumKeyCcl_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCcl_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCcl_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCcl_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCcl_resultStandardScheme getScheme() {
                return new sumKeyCcl_resultStandardScheme();
            }
        }

        private static class sumKeyCcl_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCcl_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCcl_resultTupleScheme getScheme() {
                return new sumKeyCcl_resultTupleScheme();
            }
        }

        private static class sumKeyCcl_resultTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCclTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCclTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCclTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCclTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyCclTime_args.class, metaDataMap);
        }

        public sumKeyCclTime_args() {}

        public sumKeyCclTime_args(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCclTime_args(sumKeyCclTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyCclTime_args deepCopy() {
            return new sumKeyCclTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyCclTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public sumKeyCclTime_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public sumKeyCclTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyCclTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyCclTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyCclTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCclTime_args)
                return this.equals((sumKeyCclTime_args) that);
            return false;
        }

        public boolean equals(sumKeyCclTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCclTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCclTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCclTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCclTime_argsStandardScheme getScheme() {
                return new sumKeyCclTime_argsStandardScheme();
            }
        }

        private static class sumKeyCclTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCclTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCclTime_argsTupleScheme getScheme() {
                return new sumKeyCclTime_argsTupleScheme();
            }
        }

        private static class sumKeyCclTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCclTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCclTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCclTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCclTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyCclTime_result.class, metaDataMap);
        }

        public sumKeyCclTime_result() {}

        public sumKeyCclTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCclTime_result(sumKeyCclTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public sumKeyCclTime_result deepCopy() {
            return new sumKeyCclTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyCclTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyCclTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyCclTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public sumKeyCclTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public sumKeyCclTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public sumKeyCclTime_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCclTime_result)
                return this.equals((sumKeyCclTime_result) that);
            return false;
        }

        public boolean equals(sumKeyCclTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCclTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCclTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCclTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCclTime_resultStandardScheme getScheme() {
                return new sumKeyCclTime_resultStandardScheme();
            }
        }

        private static class sumKeyCclTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCclTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCclTime_resultTupleScheme getScheme() {
                return new sumKeyCclTime_resultTupleScheme();
            }
        }

        private static class sumKeyCclTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCclTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCclTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCclTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCclTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyCclTimestr_args.class, metaDataMap);
        }

        public sumKeyCclTimestr_args() {}

        public sumKeyCclTimestr_args(java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCclTimestr_args(sumKeyCclTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public sumKeyCclTimestr_args deepCopy() {
            return new sumKeyCclTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public sumKeyCclTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public sumKeyCclTimestr_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public sumKeyCclTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public sumKeyCclTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public sumKeyCclTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public sumKeyCclTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCclTimestr_args)
                return this.equals((sumKeyCclTimestr_args) that);
            return false;
        }

        public boolean equals(sumKeyCclTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCclTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCclTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCclTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCclTimestr_argsStandardScheme getScheme() {
                return new sumKeyCclTimestr_argsStandardScheme();
            }
        }

        private static class sumKeyCclTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCclTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCclTimestr_argsTupleScheme getScheme() {
                return new sumKeyCclTimestr_argsTupleScheme();
            }
        }

        private static class sumKeyCclTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class sumKeyCclTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "sumKeyCclTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new sumKeyCclTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new sumKeyCclTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    sumKeyCclTimestr_result.class, metaDataMap);
        }

        public sumKeyCclTimestr_result() {}

        public sumKeyCclTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public sumKeyCclTimestr_result(sumKeyCclTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public sumKeyCclTimestr_result deepCopy() {
            return new sumKeyCclTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public sumKeyCclTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public sumKeyCclTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public sumKeyCclTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public sumKeyCclTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public sumKeyCclTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public sumKeyCclTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof sumKeyCclTimestr_result)
                return this.equals((sumKeyCclTimestr_result) that);
            return false;
        }

        public boolean equals(sumKeyCclTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(sumKeyCclTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "sumKeyCclTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class sumKeyCclTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCclTimestr_resultStandardScheme getScheme() {
                return new sumKeyCclTimestr_resultStandardScheme();
            }
        }

        private static class sumKeyCclTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    sumKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    sumKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class sumKeyCclTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public sumKeyCclTimestr_resultTupleScheme getScheme() {
                return new sumKeyCclTimestr_resultTupleScheme();
            }
        }

        private static class sumKeyCclTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    sumKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecord_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecord_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecord_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecord_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecord_args.class, metaDataMap);
        }

        public averageKeyRecord_args() {}

        public averageKeyRecord_args(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecord_args(averageKeyRecord_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyRecord_args deepCopy() {
            return new averageKeyRecord_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyRecord_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public averageKeyRecord_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyRecord_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyRecord_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyRecord_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecord_args)
                return this.equals((averageKeyRecord_args) that);
            return false;
        }

        public boolean equals(averageKeyRecord_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecord_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecord_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecord_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecord_argsStandardScheme getScheme() {
                return new averageKeyRecord_argsStandardScheme();
            }
        }

        private static class averageKeyRecord_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecord_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecord_argsTupleScheme getScheme() {
                return new averageKeyRecord_argsTupleScheme();
            }
        }

        private static class averageKeyRecord_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecord_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecord_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecord_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecord_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecord_result.class, metaDataMap);
        }

        public averageKeyRecord_result() {}

        public averageKeyRecord_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecord_result(averageKeyRecord_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public averageKeyRecord_result deepCopy() {
            return new averageKeyRecord_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyRecord_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyRecord_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyRecord_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public averageKeyRecord_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public averageKeyRecord_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecord_result)
                return this.equals((averageKeyRecord_result) that);
            return false;
        }

        public boolean equals(averageKeyRecord_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecord_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecord_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecord_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecord_resultStandardScheme getScheme() {
                return new averageKeyRecord_resultStandardScheme();
            }
        }

        private static class averageKeyRecord_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecord_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecord_resultTupleScheme getScheme() {
                return new averageKeyRecord_resultTupleScheme();
            }
        }

        private static class averageKeyRecord_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecordTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecordTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecordTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecordTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private static final int __TIMESTAMP_ISSET_ID = 1;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecordTime_args.class, metaDataMap);
        }

        public averageKeyRecordTime_args() {}

        public averageKeyRecordTime_args(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecordTime_args(averageKeyRecordTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyRecordTime_args deepCopy() {
            return new averageKeyRecordTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyRecordTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public averageKeyRecordTime_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public averageKeyRecordTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyRecordTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyRecordTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyRecordTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecordTime_args)
                return this.equals((averageKeyRecordTime_args) that);
            return false;
        }

        public boolean equals(averageKeyRecordTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecordTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecordTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecordTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordTime_argsStandardScheme getScheme() {
                return new averageKeyRecordTime_argsStandardScheme();
            }
        }

        private static class averageKeyRecordTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecordTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordTime_argsTupleScheme getScheme() {
                return new averageKeyRecordTime_argsTupleScheme();
            }
        }

        private static class averageKeyRecordTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecordTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecordTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecordTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecordTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecordTime_result.class, metaDataMap);
        }

        public averageKeyRecordTime_result() {}

        public averageKeyRecordTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecordTime_result(averageKeyRecordTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public averageKeyRecordTime_result deepCopy() {
            return new averageKeyRecordTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyRecordTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyRecordTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyRecordTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public averageKeyRecordTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public averageKeyRecordTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecordTime_result)
                return this.equals((averageKeyRecordTime_result) that);
            return false;
        }

        public boolean equals(averageKeyRecordTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecordTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecordTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecordTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordTime_resultStandardScheme getScheme() {
                return new averageKeyRecordTime_resultStandardScheme();
            }
        }

        private static class averageKeyRecordTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecordTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordTime_resultTupleScheme getScheme() {
                return new averageKeyRecordTime_resultTupleScheme();
            }
        }

        private static class averageKeyRecordTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecordTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecordTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecordTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecordTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecordTimestr_args.class, metaDataMap);
        }

        public averageKeyRecordTimestr_args() {}

        public averageKeyRecordTimestr_args(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecordTimestr_args(
                averageKeyRecordTimestr_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyRecordTimestr_args deepCopy() {
            return new averageKeyRecordTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyRecordTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public averageKeyRecordTimestr_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public averageKeyRecordTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyRecordTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyRecordTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyRecordTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecordTimestr_args)
                return this.equals((averageKeyRecordTimestr_args) that);
            return false;
        }

        public boolean equals(averageKeyRecordTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecordTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecordTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecordTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordTimestr_argsStandardScheme getScheme() {
                return new averageKeyRecordTimestr_argsStandardScheme();
            }
        }

        private static class averageKeyRecordTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecordTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordTimestr_argsTupleScheme getScheme() {
                return new averageKeyRecordTimestr_argsTupleScheme();
            }
        }

        private static class averageKeyRecordTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecordTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecordTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecordTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecordTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecordTimestr_result.class, metaDataMap);
        }

        public averageKeyRecordTimestr_result() {}

        public averageKeyRecordTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecordTimestr_result(
                averageKeyRecordTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public averageKeyRecordTimestr_result deepCopy() {
            return new averageKeyRecordTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyRecordTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyRecordTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyRecordTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public averageKeyRecordTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public averageKeyRecordTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public averageKeyRecordTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecordTimestr_result)
                return this.equals((averageKeyRecordTimestr_result) that);
            return false;
        }

        public boolean equals(averageKeyRecordTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecordTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecordTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecordTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordTimestr_resultStandardScheme getScheme() {
                return new averageKeyRecordTimestr_resultStandardScheme();
            }
        }

        private static class averageKeyRecordTimestr_resultStandardScheme
                extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecordTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordTimestr_resultTupleScheme getScheme() {
                return new averageKeyRecordTimestr_resultTupleScheme();
            }
        }

        private static class averageKeyRecordTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecords_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecords_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecords_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecords_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecords_args.class, metaDataMap);
        }

        public averageKeyRecords_args() {}

        public averageKeyRecords_args(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecords_args(averageKeyRecords_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyRecords_args deepCopy() {
            return new averageKeyRecords_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyRecords_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public averageKeyRecords_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyRecords_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyRecords_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyRecords_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecords_args)
                return this.equals((averageKeyRecords_args) that);
            return false;
        }

        public boolean equals(averageKeyRecords_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecords_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecords_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecords_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecords_argsStandardScheme getScheme() {
                return new averageKeyRecords_argsStandardScheme();
            }
        }

        private static class averageKeyRecords_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list24 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list24.size);
                                long _elem25;
                                for (int _i26 = 0; _i26 < _list24.size; ++_i26) {
                                    _elem25 = iprot.readI64();
                                    struct.records.add(_elem25);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter27 : struct.records) {
                            oprot.writeI64(_iter27);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecords_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecords_argsTupleScheme getScheme() {
                return new averageKeyRecords_argsTupleScheme();
            }
        }

        private static class averageKeyRecords_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter28 : struct.records) {
                            oprot.writeI64(_iter28);
                        }
                    }
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list29 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list29.size);
                        long _elem30;
                        for (int _i31 = 0; _i31 < _list29.size; ++_i31) {
                            _elem30 = iprot.readI64();
                            struct.records.add(_elem30);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecords_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecords_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecords_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecords_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecords_result.class, metaDataMap);
        }

        public averageKeyRecords_result() {}

        public averageKeyRecords_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecords_result(averageKeyRecords_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public averageKeyRecords_result deepCopy() {
            return new averageKeyRecords_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyRecords_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyRecords_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyRecords_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public averageKeyRecords_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public averageKeyRecords_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecords_result)
                return this.equals((averageKeyRecords_result) that);
            return false;
        }

        public boolean equals(averageKeyRecords_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecords_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecords_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecords_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecords_resultStandardScheme getScheme() {
                return new averageKeyRecords_resultStandardScheme();
            }
        }

        private static class averageKeyRecords_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecords_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecords_resultTupleScheme getScheme() {
                return new averageKeyRecords_resultTupleScheme();
            }
        }

        private static class averageKeyRecords_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecordsTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecordsTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecordsTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecordsTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecordsTime_args.class, metaDataMap);
        }

        public averageKeyRecordsTime_args() {}

        public averageKeyRecordsTime_args(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecordsTime_args(averageKeyRecordsTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyRecordsTime_args deepCopy() {
            return new averageKeyRecordsTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyRecordsTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public averageKeyRecordsTime_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public averageKeyRecordsTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyRecordsTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyRecordsTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyRecordsTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecordsTime_args)
                return this.equals((averageKeyRecordsTime_args) that);
            return false;
        }

        public boolean equals(averageKeyRecordsTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecordsTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecordsTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecordsTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordsTime_argsStandardScheme getScheme() {
                return new averageKeyRecordsTime_argsStandardScheme();
            }
        }

        private static class averageKeyRecordsTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list32 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list32.size);
                                long _elem33;
                                for (int _i34 = 0; _i34 < _list32.size; ++_i34) {
                                    _elem33 = iprot.readI64();
                                    struct.records.add(_elem33);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter35 : struct.records) {
                            oprot.writeI64(_iter35);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecordsTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordsTime_argsTupleScheme getScheme() {
                return new averageKeyRecordsTime_argsTupleScheme();
            }
        }

        private static class averageKeyRecordsTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter36 : struct.records) {
                            oprot.writeI64(_iter36);
                        }
                    }
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list37 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list37.size);
                        long _elem38;
                        for (int _i39 = 0; _i39 < _list37.size; ++_i39) {
                            _elem38 = iprot.readI64();
                            struct.records.add(_elem38);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecordsTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecordsTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecordsTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecordsTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecordsTime_result.class, metaDataMap);
        }

        public averageKeyRecordsTime_result() {}

        public averageKeyRecordsTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecordsTime_result(
                averageKeyRecordsTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public averageKeyRecordsTime_result deepCopy() {
            return new averageKeyRecordsTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyRecordsTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyRecordsTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyRecordsTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public averageKeyRecordsTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public averageKeyRecordsTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecordsTime_result)
                return this.equals((averageKeyRecordsTime_result) that);
            return false;
        }

        public boolean equals(averageKeyRecordsTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecordsTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecordsTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecordsTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordsTime_resultStandardScheme getScheme() {
                return new averageKeyRecordsTime_resultStandardScheme();
            }
        }

        private static class averageKeyRecordsTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecordsTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordsTime_resultTupleScheme getScheme() {
                return new averageKeyRecordsTime_resultTupleScheme();
            }
        }

        private static class averageKeyRecordsTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecordsTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecordsTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecordsTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecordsTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecordsTimestr_args.class, metaDataMap);
        }

        public averageKeyRecordsTimestr_args() {}

        public averageKeyRecordsTimestr_args(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecordsTimestr_args(
                averageKeyRecordsTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyRecordsTimestr_args deepCopy() {
            return new averageKeyRecordsTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyRecordsTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public averageKeyRecordsTimestr_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public averageKeyRecordsTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyRecordsTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyRecordsTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyRecordsTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecordsTimestr_args)
                return this.equals((averageKeyRecordsTimestr_args) that);
            return false;
        }

        public boolean equals(averageKeyRecordsTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecordsTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecordsTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecordsTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordsTimestr_argsStandardScheme getScheme() {
                return new averageKeyRecordsTimestr_argsStandardScheme();
            }
        }

        private static class averageKeyRecordsTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list40 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list40.size);
                                long _elem41;
                                for (int _i42 = 0; _i42 < _list40.size; ++_i42) {
                                    _elem41 = iprot.readI64();
                                    struct.records.add(_elem41);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter43 : struct.records) {
                            oprot.writeI64(_iter43);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecordsTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordsTimestr_argsTupleScheme getScheme() {
                return new averageKeyRecordsTimestr_argsTupleScheme();
            }
        }

        private static class averageKeyRecordsTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter44 : struct.records) {
                            oprot.writeI64(_iter44);
                        }
                    }
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list45 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list45.size);
                        long _elem46;
                        for (int _i47 = 0; _i47 < _list45.size; ++_i47) {
                            _elem46 = iprot.readI64();
                            struct.records.add(_elem46);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyRecordsTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyRecordsTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyRecordsTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyRecordsTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyRecordsTimestr_result.class, metaDataMap);
        }

        public averageKeyRecordsTimestr_result() {}

        public averageKeyRecordsTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyRecordsTimestr_result(
                averageKeyRecordsTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public averageKeyRecordsTimestr_result deepCopy() {
            return new averageKeyRecordsTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyRecordsTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyRecordsTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyRecordsTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public averageKeyRecordsTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public averageKeyRecordsTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public averageKeyRecordsTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyRecordsTimestr_result)
                return this.equals((averageKeyRecordsTimestr_result) that);
            return false;
        }

        public boolean equals(averageKeyRecordsTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyRecordsTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyRecordsTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyRecordsTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordsTimestr_resultStandardScheme getScheme() {
                return new averageKeyRecordsTimestr_resultStandardScheme();
            }
        }

        private static class averageKeyRecordsTimestr_resultStandardScheme
                extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyRecordsTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyRecordsTimestr_resultTupleScheme getScheme() {
                return new averageKeyRecordsTimestr_resultTupleScheme();
            }
        }

        private static class averageKeyRecordsTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKey_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKey_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 3);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKey_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKey_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CREDS((short) 2, "creds"),
            TRANSACTION((short) 3, "transaction"),
            ENVIRONMENT((short) 4, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CREDS
                    return CREDS;
                case 3: // TRANSACTION
                    return TRANSACTION;
                case 4: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(averageKey_args.class, metaDataMap);
        }

        public averageKey_args() {}

        public averageKey_args(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKey_args(averageKey_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKey_args deepCopy() {
            return new averageKey_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKey_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKey_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKey_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKey_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKey_args)
                return this.equals((averageKey_args) that);
            return false;
        }

        public boolean equals(averageKey_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKey_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKey_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKey_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKey_argsStandardScheme getScheme() {
                return new averageKey_argsStandardScheme();
            }
        }

        private static class averageKey_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKey_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKey_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKey_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKey_argsTupleScheme getScheme() {
                return new averageKey_argsTupleScheme();
            }
        }

        private static class averageKey_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKey_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCreds()) {
                    optionals.set(1);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(2);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(3);
                }
                oprot.writeBitSet(optionals, 4);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKey_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(4);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKey_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKey_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKey_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKey_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(averageKey_result.class, metaDataMap);
        }

        public averageKey_result() {}

        public averageKey_result(com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKey_result(averageKey_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public averageKey_result deepCopy() {
            return new averageKey_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKey_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKey_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKey_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public averageKey_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public averageKey_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKey_result)
                return this.equals((averageKey_result) that);
            return false;
        }

        public boolean equals(averageKey_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKey_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKey_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKey_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKey_resultStandardScheme getScheme() {
                return new averageKey_resultStandardScheme();
            }
        }

        private static class averageKey_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKey_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKey_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKey_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKey_resultTupleScheme getScheme() {
                return new averageKey_resultTupleScheme();
            }
        }

        private static class averageKey_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKey_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKey_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            TIMESTAMP((short) 2, "timestamp"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // TIMESTAMP
                    return TIMESTAMP;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyTime_args.class, metaDataMap);
        }

        public averageKeyTime_args() {}

        public averageKeyTime_args(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyTime_args(averageKeyTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyTime_args deepCopy() {
            return new averageKeyTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public averageKeyTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyTime_args)
                return this.equals((averageKeyTime_args) that);
            return false;
        }

        public boolean equals(averageKeyTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyTime_argsStandardScheme getScheme() {
                return new averageKeyTime_argsStandardScheme();
            }
        }

        private static class averageKeyTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyTime_argsTupleScheme getScheme() {
                return new averageKeyTime_argsTupleScheme();
            }
        }

        private static class averageKeyTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyTime_result.class, metaDataMap);
        }

        public averageKeyTime_result() {}

        public averageKeyTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyTime_result(averageKeyTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public averageKeyTime_result deepCopy() {
            return new averageKeyTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public averageKeyTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public averageKeyTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyTime_result)
                return this.equals((averageKeyTime_result) that);
            return false;
        }

        public boolean equals(averageKeyTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyTime_resultStandardScheme getScheme() {
                return new averageKeyTime_resultStandardScheme();
            }
        }

        private static class averageKeyTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyTime_resultTupleScheme getScheme() {
                return new averageKeyTime_resultTupleScheme();
            }
        }

        private static class averageKeyTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            TIMESTAMP((short) 2, "timestamp"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // TIMESTAMP
                    return TIMESTAMP;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyTimestr_args.class, metaDataMap);
        }

        public averageKeyTimestr_args() {}

        public averageKeyTimestr_args(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyTimestr_args(averageKeyTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyTimestr_args deepCopy() {
            return new averageKeyTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public averageKeyTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyTimestr_args)
                return this.equals((averageKeyTimestr_args) that);
            return false;
        }

        public boolean equals(averageKeyTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyTimestr_argsStandardScheme getScheme() {
                return new averageKeyTimestr_argsStandardScheme();
            }
        }

        private static class averageKeyTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyTimestr_argsTupleScheme getScheme() {
                return new averageKeyTimestr_argsTupleScheme();
            }
        }

        private static class averageKeyTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyTimestr_result.class, metaDataMap);
        }

        public averageKeyTimestr_result() {}

        public averageKeyTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyTimestr_result(averageKeyTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public averageKeyTimestr_result deepCopy() {
            return new averageKeyTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public averageKeyTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public averageKeyTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public averageKeyTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyTimestr_result)
                return this.equals((averageKeyTimestr_result) that);
            return false;
        }

        public boolean equals(averageKeyTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyTimestr_resultStandardScheme getScheme() {
                return new averageKeyTimestr_resultStandardScheme();
            }
        }

        private static class averageKeyTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyTimestr_resultTupleScheme getScheme() {
                return new averageKeyTimestr_resultTupleScheme();
            }
        }

        private static class averageKeyTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCriteria_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCriteria_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCriteria_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCriteria_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCriteria_args.class, metaDataMap);
        }

        public averageKeyCriteria_args() {}

        public averageKeyCriteria_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCriteria_args(averageKeyCriteria_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyCriteria_args deepCopy() {
            return new averageKeyCriteria_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyCriteria_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public averageKeyCriteria_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyCriteria_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyCriteria_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyCriteria_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCriteria_args)
                return this.equals((averageKeyCriteria_args) that);
            return false;
        }

        public boolean equals(averageKeyCriteria_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCriteria_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCriteria_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCriteria_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteria_argsStandardScheme getScheme() {
                return new averageKeyCriteria_argsStandardScheme();
            }
        }

        private static class averageKeyCriteria_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCriteria_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteria_argsTupleScheme getScheme() {
                return new averageKeyCriteria_argsTupleScheme();
            }
        }

        private static class averageKeyCriteria_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCriteria_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCriteria_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCriteria_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCriteria_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCriteria_result.class, metaDataMap);
        }

        public averageKeyCriteria_result() {}

        public averageKeyCriteria_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCriteria_result(averageKeyCriteria_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public averageKeyCriteria_result deepCopy() {
            return new averageKeyCriteria_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyCriteria_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyCriteria_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyCriteria_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public averageKeyCriteria_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public averageKeyCriteria_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCriteria_result)
                return this.equals((averageKeyCriteria_result) that);
            return false;
        }

        public boolean equals(averageKeyCriteria_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCriteria_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCriteria_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCriteria_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteria_resultStandardScheme getScheme() {
                return new averageKeyCriteria_resultStandardScheme();
            }
        }

        private static class averageKeyCriteria_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCriteria_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteria_resultTupleScheme getScheme() {
                return new averageKeyCriteria_resultTupleScheme();
            }
        }

        private static class averageKeyCriteria_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCriteriaTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCriteriaTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCriteriaTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCriteriaTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCriteriaTime_args.class, metaDataMap);
        }

        public averageKeyCriteriaTime_args() {}

        public averageKeyCriteriaTime_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCriteriaTime_args(averageKeyCriteriaTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyCriteriaTime_args deepCopy() {
            return new averageKeyCriteriaTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyCriteriaTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public averageKeyCriteriaTime_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public averageKeyCriteriaTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyCriteriaTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyCriteriaTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyCriteriaTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCriteriaTime_args)
                return this.equals((averageKeyCriteriaTime_args) that);
            return false;
        }

        public boolean equals(averageKeyCriteriaTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCriteriaTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCriteriaTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCriteriaTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteriaTime_argsStandardScheme getScheme() {
                return new averageKeyCriteriaTime_argsStandardScheme();
            }
        }

        private static class averageKeyCriteriaTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCriteriaTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteriaTime_argsTupleScheme getScheme() {
                return new averageKeyCriteriaTime_argsTupleScheme();
            }
        }

        private static class averageKeyCriteriaTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCriteriaTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCriteriaTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCriteriaTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCriteriaTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCriteriaTime_result.class, metaDataMap);
        }

        public averageKeyCriteriaTime_result() {}

        public averageKeyCriteriaTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCriteriaTime_result(
                averageKeyCriteriaTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public averageKeyCriteriaTime_result deepCopy() {
            return new averageKeyCriteriaTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyCriteriaTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyCriteriaTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyCriteriaTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public averageKeyCriteriaTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public averageKeyCriteriaTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCriteriaTime_result)
                return this.equals((averageKeyCriteriaTime_result) that);
            return false;
        }

        public boolean equals(averageKeyCriteriaTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCriteriaTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCriteriaTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCriteriaTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteriaTime_resultStandardScheme getScheme() {
                return new averageKeyCriteriaTime_resultStandardScheme();
            }
        }

        private static class averageKeyCriteriaTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCriteriaTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteriaTime_resultTupleScheme getScheme() {
                return new averageKeyCriteriaTime_resultTupleScheme();
            }
        }

        private static class averageKeyCriteriaTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCriteriaTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCriteriaTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCriteriaTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCriteriaTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCriteriaTimestr_args.class, metaDataMap);
        }

        public averageKeyCriteriaTimestr_args() {}

        public averageKeyCriteriaTimestr_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCriteriaTimestr_args(
                averageKeyCriteriaTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyCriteriaTimestr_args deepCopy() {
            return new averageKeyCriteriaTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyCriteriaTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public averageKeyCriteriaTimestr_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public averageKeyCriteriaTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyCriteriaTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyCriteriaTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyCriteriaTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCriteriaTimestr_args)
                return this.equals((averageKeyCriteriaTimestr_args) that);
            return false;
        }

        public boolean equals(averageKeyCriteriaTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCriteriaTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCriteriaTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCriteriaTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteriaTimestr_argsStandardScheme getScheme() {
                return new averageKeyCriteriaTimestr_argsStandardScheme();
            }
        }

        private static class averageKeyCriteriaTimestr_argsStandardScheme
                extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCriteriaTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteriaTimestr_argsTupleScheme getScheme() {
                return new averageKeyCriteriaTimestr_argsTupleScheme();
            }
        }

        private static class averageKeyCriteriaTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCriteriaTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCriteriaTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCriteriaTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCriteriaTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCriteriaTimestr_result.class, metaDataMap);
        }

        public averageKeyCriteriaTimestr_result() {}

        public averageKeyCriteriaTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCriteriaTimestr_result(
                averageKeyCriteriaTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public averageKeyCriteriaTimestr_result deepCopy() {
            return new averageKeyCriteriaTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyCriteriaTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyCriteriaTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyCriteriaTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public averageKeyCriteriaTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public averageKeyCriteriaTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public averageKeyCriteriaTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCriteriaTimestr_result)
                return this.equals((averageKeyCriteriaTimestr_result) that);
            return false;
        }

        public boolean equals(averageKeyCriteriaTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCriteriaTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCriteriaTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCriteriaTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteriaTimestr_resultStandardScheme getScheme() {
                return new averageKeyCriteriaTimestr_resultStandardScheme();
            }
        }

        private static class averageKeyCriteriaTimestr_resultStandardScheme
                extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCriteriaTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCriteriaTimestr_resultTupleScheme getScheme() {
                return new averageKeyCriteriaTimestr_resultTupleScheme();
            }
        }

        private static class averageKeyCriteriaTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCcl_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCcl_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCcl_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCcl_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCcl_args.class, metaDataMap);
        }

        public averageKeyCcl_args() {}

        public averageKeyCcl_args(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCcl_args(averageKeyCcl_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyCcl_args deepCopy() {
            return new averageKeyCcl_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyCcl_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public averageKeyCcl_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyCcl_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyCcl_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyCcl_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCcl_args)
                return this.equals((averageKeyCcl_args) that);
            return false;
        }

        public boolean equals(averageKeyCcl_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCcl_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCcl_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCcl_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCcl_argsStandardScheme getScheme() {
                return new averageKeyCcl_argsStandardScheme();
            }
        }

        private static class averageKeyCcl_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCcl_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCcl_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCcl_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCcl_argsTupleScheme getScheme() {
                return new averageKeyCcl_argsTupleScheme();
            }
        }

        private static class averageKeyCcl_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCcl_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCcl_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCcl_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCcl_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCcl_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCcl_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCcl_result.class, metaDataMap);
        }

        public averageKeyCcl_result() {}

        public averageKeyCcl_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCcl_result(averageKeyCcl_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public averageKeyCcl_result deepCopy() {
            return new averageKeyCcl_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyCcl_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyCcl_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyCcl_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public averageKeyCcl_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public averageKeyCcl_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public averageKeyCcl_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCcl_result)
                return this.equals((averageKeyCcl_result) that);
            return false;
        }

        public boolean equals(averageKeyCcl_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCcl_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCcl_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCcl_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCcl_resultStandardScheme getScheme() {
                return new averageKeyCcl_resultStandardScheme();
            }
        }

        private static class averageKeyCcl_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCcl_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCcl_resultTupleScheme getScheme() {
                return new averageKeyCcl_resultTupleScheme();
            }
        }

        private static class averageKeyCcl_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCclTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCclTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCclTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCclTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCclTime_args.class, metaDataMap);
        }

        public averageKeyCclTime_args() {}

        public averageKeyCclTime_args(java.lang.String key,
                java.lang.String ccl, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCclTime_args(averageKeyCclTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyCclTime_args deepCopy() {
            return new averageKeyCclTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyCclTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public averageKeyCclTime_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public averageKeyCclTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyCclTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyCclTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyCclTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCclTime_args)
                return this.equals((averageKeyCclTime_args) that);
            return false;
        }

        public boolean equals(averageKeyCclTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCclTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCclTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCclTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCclTime_argsStandardScheme getScheme() {
                return new averageKeyCclTime_argsStandardScheme();
            }
        }

        private static class averageKeyCclTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCclTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCclTime_argsTupleScheme getScheme() {
                return new averageKeyCclTime_argsTupleScheme();
            }
        }

        private static class averageKeyCclTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCclTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCclTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCclTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCclTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCclTime_result.class, metaDataMap);
        }

        public averageKeyCclTime_result() {}

        public averageKeyCclTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCclTime_result(averageKeyCclTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public averageKeyCclTime_result deepCopy() {
            return new averageKeyCclTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyCclTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyCclTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyCclTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public averageKeyCclTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public averageKeyCclTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public averageKeyCclTime_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCclTime_result)
                return this.equals((averageKeyCclTime_result) that);
            return false;
        }

        public boolean equals(averageKeyCclTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCclTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCclTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCclTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCclTime_resultStandardScheme getScheme() {
                return new averageKeyCclTime_resultStandardScheme();
            }
        }

        private static class averageKeyCclTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCclTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCclTime_resultTupleScheme getScheme() {
                return new averageKeyCclTime_resultTupleScheme();
            }
        }

        private static class averageKeyCclTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCclTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCclTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCclTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCclTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCclTimestr_args.class, metaDataMap);
        }

        public averageKeyCclTimestr_args() {}

        public averageKeyCclTimestr_args(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCclTimestr_args(averageKeyCclTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public averageKeyCclTimestr_args deepCopy() {
            return new averageKeyCclTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public averageKeyCclTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public averageKeyCclTimestr_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public averageKeyCclTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public averageKeyCclTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public averageKeyCclTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public averageKeyCclTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCclTimestr_args)
                return this.equals((averageKeyCclTimestr_args) that);
            return false;
        }

        public boolean equals(averageKeyCclTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCclTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCclTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCclTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCclTimestr_argsStandardScheme getScheme() {
                return new averageKeyCclTimestr_argsStandardScheme();
            }
        }

        private static class averageKeyCclTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCclTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCclTimestr_argsTupleScheme getScheme() {
                return new averageKeyCclTimestr_argsTupleScheme();
            }
        }

        private static class averageKeyCclTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class averageKeyCclTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "averageKeyCclTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new averageKeyCclTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new averageKeyCclTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    averageKeyCclTimestr_result.class, metaDataMap);
        }

        public averageKeyCclTimestr_result() {}

        public averageKeyCclTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public averageKeyCclTimestr_result(averageKeyCclTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public averageKeyCclTimestr_result deepCopy() {
            return new averageKeyCclTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public averageKeyCclTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public averageKeyCclTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public averageKeyCclTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public averageKeyCclTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public averageKeyCclTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public averageKeyCclTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof averageKeyCclTimestr_result)
                return this.equals((averageKeyCclTimestr_result) that);
            return false;
        }

        public boolean equals(averageKeyCclTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(averageKeyCclTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "averageKeyCclTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class averageKeyCclTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCclTimestr_resultStandardScheme getScheme() {
                return new averageKeyCclTimestr_resultStandardScheme();
            }
        }

        private static class averageKeyCclTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    averageKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    averageKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class averageKeyCclTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public averageKeyCclTimestr_resultTupleScheme getScheme() {
                return new averageKeyCclTimestr_resultTupleScheme();
            }
        }

        private static class averageKeyCclTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    averageKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecord_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecord_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecord_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecord_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecord_args.class, metaDataMap);
        }

        public countKeyRecord_args() {}

        public countKeyRecord_args(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecord_args(countKeyRecord_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyRecord_args deepCopy() {
            return new countKeyRecord_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyRecord_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public countKeyRecord_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyRecord_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyRecord_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyRecord_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecord_args)
                return this.equals((countKeyRecord_args) that);
            return false;
        }

        public boolean equals(countKeyRecord_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecord_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecord_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecord_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecord_argsStandardScheme getScheme() {
                return new countKeyRecord_argsStandardScheme();
            }
        }

        private static class countKeyRecord_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecord_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecord_argsTupleScheme getScheme() {
                return new countKeyRecord_argsTupleScheme();
            }
        }

        private static class countKeyRecord_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecord_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecord_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecord_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecord_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecord_result.class, metaDataMap);
        }

        public countKeyRecord_result() {}

        public countKeyRecord_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecord_result(countKeyRecord_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public countKeyRecord_result deepCopy() {
            return new countKeyRecord_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyRecord_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyRecord_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyRecord_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public countKeyRecord_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public countKeyRecord_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecord_result)
                return this.equals((countKeyRecord_result) that);
            return false;
        }

        public boolean equals(countKeyRecord_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecord_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecord_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecord_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecord_resultStandardScheme getScheme() {
                return new countKeyRecord_resultStandardScheme();
            }
        }

        private static class countKeyRecord_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecord_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecord_resultTupleScheme getScheme() {
                return new countKeyRecord_resultTupleScheme();
            }
        }

        private static class countKeyRecord_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecordTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecordTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecordTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecordTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private static final int __TIMESTAMP_ISSET_ID = 1;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecordTime_args.class, metaDataMap);
        }

        public countKeyRecordTime_args() {}

        public countKeyRecordTime_args(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecordTime_args(countKeyRecordTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyRecordTime_args deepCopy() {
            return new countKeyRecordTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyRecordTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public countKeyRecordTime_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public countKeyRecordTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyRecordTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyRecordTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyRecordTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecordTime_args)
                return this.equals((countKeyRecordTime_args) that);
            return false;
        }

        public boolean equals(countKeyRecordTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecordTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecordTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecordTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordTime_argsStandardScheme getScheme() {
                return new countKeyRecordTime_argsStandardScheme();
            }
        }

        private static class countKeyRecordTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecordTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordTime_argsTupleScheme getScheme() {
                return new countKeyRecordTime_argsTupleScheme();
            }
        }

        private static class countKeyRecordTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecordTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecordTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecordTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecordTime_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecordTime_result.class, metaDataMap);
        }

        public countKeyRecordTime_result() {}

        public countKeyRecordTime_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecordTime_result(countKeyRecordTime_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public countKeyRecordTime_result deepCopy() {
            return new countKeyRecordTime_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyRecordTime_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyRecordTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyRecordTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public countKeyRecordTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public countKeyRecordTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecordTime_result)
                return this.equals((countKeyRecordTime_result) that);
            return false;
        }

        public boolean equals(countKeyRecordTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecordTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecordTime_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecordTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordTime_resultStandardScheme getScheme() {
                return new countKeyRecordTime_resultStandardScheme();
            }
        }

        private static class countKeyRecordTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecordTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordTime_resultTupleScheme getScheme() {
                return new countKeyRecordTime_resultTupleScheme();
            }
        }

        private static class countKeyRecordTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecordTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecordTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecordTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecordTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecordTimestr_args.class, metaDataMap);
        }

        public countKeyRecordTimestr_args() {}

        public countKeyRecordTimestr_args(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecordTimestr_args(countKeyRecordTimestr_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyRecordTimestr_args deepCopy() {
            return new countKeyRecordTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyRecordTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public countKeyRecordTimestr_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public countKeyRecordTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyRecordTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyRecordTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyRecordTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecordTimestr_args)
                return this.equals((countKeyRecordTimestr_args) that);
            return false;
        }

        public boolean equals(countKeyRecordTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecordTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecordTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecordTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordTimestr_argsStandardScheme getScheme() {
                return new countKeyRecordTimestr_argsStandardScheme();
            }
        }

        private static class countKeyRecordTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecordTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordTimestr_argsTupleScheme getScheme() {
                return new countKeyRecordTimestr_argsTupleScheme();
            }
        }

        private static class countKeyRecordTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecordTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecordTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecordTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecordTimestr_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecordTimestr_result.class, metaDataMap);
        }

        public countKeyRecordTimestr_result() {}

        public countKeyRecordTimestr_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecordTimestr_result(
                countKeyRecordTimestr_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public countKeyRecordTimestr_result deepCopy() {
            return new countKeyRecordTimestr_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyRecordTimestr_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyRecordTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyRecordTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public countKeyRecordTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public countKeyRecordTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public countKeyRecordTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecordTimestr_result)
                return this.equals((countKeyRecordTimestr_result) that);
            return false;
        }

        public boolean equals(countKeyRecordTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecordTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecordTimestr_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecordTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordTimestr_resultStandardScheme getScheme() {
                return new countKeyRecordTimestr_resultStandardScheme();
            }
        }

        private static class countKeyRecordTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecordTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordTimestr_resultTupleScheme getScheme() {
                return new countKeyRecordTimestr_resultTupleScheme();
            }
        }

        private static class countKeyRecordTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecords_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecords_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecords_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecords_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecords_args.class, metaDataMap);
        }

        public countKeyRecords_args() {}

        public countKeyRecords_args(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecords_args(countKeyRecords_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyRecords_args deepCopy() {
            return new countKeyRecords_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyRecords_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public countKeyRecords_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyRecords_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyRecords_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyRecords_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecords_args)
                return this.equals((countKeyRecords_args) that);
            return false;
        }

        public boolean equals(countKeyRecords_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecords_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecords_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecords_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecords_argsStandardScheme getScheme() {
                return new countKeyRecords_argsStandardScheme();
            }
        }

        private static class countKeyRecords_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list48 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list48.size);
                                long _elem49;
                                for (int _i50 = 0; _i50 < _list48.size; ++_i50) {
                                    _elem49 = iprot.readI64();
                                    struct.records.add(_elem49);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter51 : struct.records) {
                            oprot.writeI64(_iter51);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecords_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecords_argsTupleScheme getScheme() {
                return new countKeyRecords_argsTupleScheme();
            }
        }

        private static class countKeyRecords_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter52 : struct.records) {
                            oprot.writeI64(_iter52);
                        }
                    }
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list53 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list53.size);
                        long _elem54;
                        for (int _i55 = 0; _i55 < _list53.size; ++_i55) {
                            _elem54 = iprot.readI64();
                            struct.records.add(_elem54);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecords_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecords_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecords_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecords_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecords_result.class, metaDataMap);
        }

        public countKeyRecords_result() {}

        public countKeyRecords_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecords_result(countKeyRecords_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public countKeyRecords_result deepCopy() {
            return new countKeyRecords_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyRecords_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyRecords_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyRecords_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public countKeyRecords_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public countKeyRecords_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecords_result)
                return this.equals((countKeyRecords_result) that);
            return false;
        }

        public boolean equals(countKeyRecords_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecords_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecords_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecords_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecords_resultStandardScheme getScheme() {
                return new countKeyRecords_resultStandardScheme();
            }
        }

        private static class countKeyRecords_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecords_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecords_resultTupleScheme getScheme() {
                return new countKeyRecords_resultTupleScheme();
            }
        }

        private static class countKeyRecords_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecordsTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecordsTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecordsTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecordsTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecordsTime_args.class, metaDataMap);
        }

        public countKeyRecordsTime_args() {}

        public countKeyRecordsTime_args(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecordsTime_args(countKeyRecordsTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyRecordsTime_args deepCopy() {
            return new countKeyRecordsTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyRecordsTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public countKeyRecordsTime_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public countKeyRecordsTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyRecordsTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyRecordsTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyRecordsTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecordsTime_args)
                return this.equals((countKeyRecordsTime_args) that);
            return false;
        }

        public boolean equals(countKeyRecordsTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecordsTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecordsTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecordsTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordsTime_argsStandardScheme getScheme() {
                return new countKeyRecordsTime_argsStandardScheme();
            }
        }

        private static class countKeyRecordsTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list56 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list56.size);
                                long _elem57;
                                for (int _i58 = 0; _i58 < _list56.size; ++_i58) {
                                    _elem57 = iprot.readI64();
                                    struct.records.add(_elem57);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter59 : struct.records) {
                            oprot.writeI64(_iter59);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecordsTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordsTime_argsTupleScheme getScheme() {
                return new countKeyRecordsTime_argsTupleScheme();
            }
        }

        private static class countKeyRecordsTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter60 : struct.records) {
                            oprot.writeI64(_iter60);
                        }
                    }
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list61 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list61.size);
                        long _elem62;
                        for (int _i63 = 0; _i63 < _list61.size; ++_i63) {
                            _elem62 = iprot.readI64();
                            struct.records.add(_elem62);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecordsTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecordsTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecordsTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecordsTime_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecordsTime_result.class, metaDataMap);
        }

        public countKeyRecordsTime_result() {}

        public countKeyRecordsTime_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecordsTime_result(countKeyRecordsTime_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public countKeyRecordsTime_result deepCopy() {
            return new countKeyRecordsTime_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyRecordsTime_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyRecordsTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyRecordsTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public countKeyRecordsTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public countKeyRecordsTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecordsTime_result)
                return this.equals((countKeyRecordsTime_result) that);
            return false;
        }

        public boolean equals(countKeyRecordsTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecordsTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecordsTime_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecordsTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordsTime_resultStandardScheme getScheme() {
                return new countKeyRecordsTime_resultStandardScheme();
            }
        }

        private static class countKeyRecordsTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecordsTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordsTime_resultTupleScheme getScheme() {
                return new countKeyRecordsTime_resultTupleScheme();
            }
        }

        private static class countKeyRecordsTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecordsTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecordsTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecordsTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecordsTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecordsTimestr_args.class, metaDataMap);
        }

        public countKeyRecordsTimestr_args() {}

        public countKeyRecordsTimestr_args(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecordsTimestr_args(countKeyRecordsTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyRecordsTimestr_args deepCopy() {
            return new countKeyRecordsTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyRecordsTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public countKeyRecordsTimestr_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public countKeyRecordsTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyRecordsTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyRecordsTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyRecordsTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecordsTimestr_args)
                return this.equals((countKeyRecordsTimestr_args) that);
            return false;
        }

        public boolean equals(countKeyRecordsTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecordsTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecordsTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecordsTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordsTimestr_argsStandardScheme getScheme() {
                return new countKeyRecordsTimestr_argsStandardScheme();
            }
        }

        private static class countKeyRecordsTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list64 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list64.size);
                                long _elem65;
                                for (int _i66 = 0; _i66 < _list64.size; ++_i66) {
                                    _elem65 = iprot.readI64();
                                    struct.records.add(_elem65);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter67 : struct.records) {
                            oprot.writeI64(_iter67);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecordsTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordsTimestr_argsTupleScheme getScheme() {
                return new countKeyRecordsTimestr_argsTupleScheme();
            }
        }

        private static class countKeyRecordsTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter68 : struct.records) {
                            oprot.writeI64(_iter68);
                        }
                    }
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list69 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list69.size);
                        long _elem70;
                        for (int _i71 = 0; _i71 < _list69.size; ++_i71) {
                            _elem70 = iprot.readI64();
                            struct.records.add(_elem70);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyRecordsTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyRecordsTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyRecordsTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyRecordsTimestr_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyRecordsTimestr_result.class, metaDataMap);
        }

        public countKeyRecordsTimestr_result() {}

        public countKeyRecordsTimestr_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyRecordsTimestr_result(
                countKeyRecordsTimestr_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public countKeyRecordsTimestr_result deepCopy() {
            return new countKeyRecordsTimestr_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyRecordsTimestr_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyRecordsTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyRecordsTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public countKeyRecordsTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public countKeyRecordsTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public countKeyRecordsTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyRecordsTimestr_result)
                return this.equals((countKeyRecordsTimestr_result) that);
            return false;
        }

        public boolean equals(countKeyRecordsTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyRecordsTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyRecordsTimestr_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyRecordsTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordsTimestr_resultStandardScheme getScheme() {
                return new countKeyRecordsTimestr_resultStandardScheme();
            }
        }

        private static class countKeyRecordsTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyRecordsTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyRecordsTimestr_resultTupleScheme getScheme() {
                return new countKeyRecordsTimestr_resultTupleScheme();
            }
        }

        private static class countKeyRecordsTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKey_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKey_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 3);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKey_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKey_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CREDS((short) 2, "creds"),
            TRANSACTION((short) 3, "transaction"),
            ENVIRONMENT((short) 4, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CREDS
                    return CREDS;
                case 3: // TRANSACTION
                    return TRANSACTION;
                case 4: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(countKey_args.class, metaDataMap);
        }

        public countKey_args() {}

        public countKey_args(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKey_args(countKey_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKey_args deepCopy() {
            return new countKey_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKey_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKey_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKey_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKey_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKey_args)
                return this.equals((countKey_args) that);
            return false;
        }

        public boolean equals(countKey_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKey_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKey_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKey_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKey_argsStandardScheme getScheme() {
                return new countKey_argsStandardScheme();
            }
        }

        private static class countKey_argsStandardScheme
                extends org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKey_args struct) throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKey_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKey_argsTupleScheme getScheme() {
                return new countKey_argsTupleScheme();
            }
        }

        private static class countKey_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCreds()) {
                    optionals.set(1);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(2);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(3);
                }
                oprot.writeBitSet(optionals, 4);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(4);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKey_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKey_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKey_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKey_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(countKey_result.class, metaDataMap);
        }

        public countKey_result() {}

        public countKey_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKey_result(countKey_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public countKey_result deepCopy() {
            return new countKey_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKey_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKey_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKey_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public countKey_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public countKey_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKey_result)
                return this.equals((countKey_result) that);
            return false;
        }

        public boolean equals(countKey_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKey_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKey_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKey_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKey_resultStandardScheme getScheme() {
                return new countKey_resultStandardScheme();
            }
        }

        private static class countKey_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKey_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKey_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKey_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKey_resultTupleScheme getScheme() {
                return new countKey_resultTupleScheme();
            }
        }

        private static class countKey_resultTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKey_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKey_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            TIMESTAMP((short) 2, "timestamp"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // TIMESTAMP
                    return TIMESTAMP;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(countKeyTime_args.class, metaDataMap);
        }

        public countKeyTime_args() {}

        public countKeyTime_args(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyTime_args(countKeyTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyTime_args deepCopy() {
            return new countKeyTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public countKeyTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyTime_args)
                return this.equals((countKeyTime_args) that);
            return false;
        }

        public boolean equals(countKeyTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyTime_argsStandardScheme getScheme() {
                return new countKeyTime_argsStandardScheme();
            }
        }

        private static class countKeyTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyTime_argsTupleScheme getScheme() {
                return new countKeyTime_argsTupleScheme();
            }
        }

        private static class countKeyTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyTime_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyTime_result.class, metaDataMap);
        }

        public countKeyTime_result() {}

        public countKeyTime_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyTime_result(countKeyTime_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public countKeyTime_result deepCopy() {
            return new countKeyTime_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyTime_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public countKeyTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public countKeyTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyTime_result)
                return this.equals((countKeyTime_result) that);
            return false;
        }

        public boolean equals(countKeyTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyTime_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyTime_resultStandardScheme getScheme() {
                return new countKeyTime_resultStandardScheme();
            }
        }

        private static class countKeyTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyTime_resultTupleScheme getScheme() {
                return new countKeyTime_resultTupleScheme();
            }
        }

        private static class countKeyTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            TIMESTAMP((short) 2, "timestamp"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // TIMESTAMP
                    return TIMESTAMP;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyTimestr_args.class, metaDataMap);
        }

        public countKeyTimestr_args() {}

        public countKeyTimestr_args(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyTimestr_args(countKeyTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyTimestr_args deepCopy() {
            return new countKeyTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public countKeyTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyTimestr_args)
                return this.equals((countKeyTimestr_args) that);
            return false;
        }

        public boolean equals(countKeyTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyTimestr_argsStandardScheme getScheme() {
                return new countKeyTimestr_argsStandardScheme();
            }
        }

        private static class countKeyTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyTimestr_argsTupleScheme getScheme() {
                return new countKeyTimestr_argsTupleScheme();
            }
        }

        private static class countKeyTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyTimestr_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyTimestr_result.class, metaDataMap);
        }

        public countKeyTimestr_result() {}

        public countKeyTimestr_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyTimestr_result(countKeyTimestr_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public countKeyTimestr_result deepCopy() {
            return new countKeyTimestr_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyTimestr_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public countKeyTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public countKeyTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public countKeyTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyTimestr_result)
                return this.equals((countKeyTimestr_result) that);
            return false;
        }

        public boolean equals(countKeyTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyTimestr_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyTimestr_resultStandardScheme getScheme() {
                return new countKeyTimestr_resultStandardScheme();
            }
        }

        private static class countKeyTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyTimestr_resultTupleScheme getScheme() {
                return new countKeyTimestr_resultTupleScheme();
            }
        }

        private static class countKeyTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCriteria_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCriteria_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCriteria_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCriteria_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCriteria_args.class, metaDataMap);
        }

        public countKeyCriteria_args() {}

        public countKeyCriteria_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCriteria_args(countKeyCriteria_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyCriteria_args deepCopy() {
            return new countKeyCriteria_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyCriteria_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public countKeyCriteria_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyCriteria_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyCriteria_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyCriteria_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCriteria_args)
                return this.equals((countKeyCriteria_args) that);
            return false;
        }

        public boolean equals(countKeyCriteria_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCriteria_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCriteria_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCriteria_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteria_argsStandardScheme getScheme() {
                return new countKeyCriteria_argsStandardScheme();
            }
        }

        private static class countKeyCriteria_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCriteria_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteria_argsTupleScheme getScheme() {
                return new countKeyCriteria_argsTupleScheme();
            }
        }

        private static class countKeyCriteria_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCriteria_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCriteria_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCriteria_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCriteria_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCriteria_result.class, metaDataMap);
        }

        public countKeyCriteria_result() {}

        public countKeyCriteria_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCriteria_result(countKeyCriteria_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public countKeyCriteria_result deepCopy() {
            return new countKeyCriteria_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyCriteria_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyCriteria_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyCriteria_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public countKeyCriteria_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public countKeyCriteria_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCriteria_result)
                return this.equals((countKeyCriteria_result) that);
            return false;
        }

        public boolean equals(countKeyCriteria_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCriteria_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCriteria_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCriteria_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteria_resultStandardScheme getScheme() {
                return new countKeyCriteria_resultStandardScheme();
            }
        }

        private static class countKeyCriteria_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCriteria_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteria_resultTupleScheme getScheme() {
                return new countKeyCriteria_resultTupleScheme();
            }
        }

        private static class countKeyCriteria_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCriteriaTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCriteriaTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCriteriaTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCriteriaTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCriteriaTime_args.class, metaDataMap);
        }

        public countKeyCriteriaTime_args() {}

        public countKeyCriteriaTime_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCriteriaTime_args(countKeyCriteriaTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyCriteriaTime_args deepCopy() {
            return new countKeyCriteriaTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyCriteriaTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public countKeyCriteriaTime_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public countKeyCriteriaTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyCriteriaTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyCriteriaTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyCriteriaTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCriteriaTime_args)
                return this.equals((countKeyCriteriaTime_args) that);
            return false;
        }

        public boolean equals(countKeyCriteriaTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCriteriaTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCriteriaTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCriteriaTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteriaTime_argsStandardScheme getScheme() {
                return new countKeyCriteriaTime_argsStandardScheme();
            }
        }

        private static class countKeyCriteriaTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCriteriaTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteriaTime_argsTupleScheme getScheme() {
                return new countKeyCriteriaTime_argsTupleScheme();
            }
        }

        private static class countKeyCriteriaTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCriteriaTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCriteriaTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCriteriaTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCriteriaTime_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCriteriaTime_result.class, metaDataMap);
        }

        public countKeyCriteriaTime_result() {}

        public countKeyCriteriaTime_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCriteriaTime_result(countKeyCriteriaTime_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public countKeyCriteriaTime_result deepCopy() {
            return new countKeyCriteriaTime_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyCriteriaTime_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyCriteriaTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyCriteriaTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public countKeyCriteriaTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public countKeyCriteriaTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public countKeyCriteriaTime_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCriteriaTime_result)
                return this.equals((countKeyCriteriaTime_result) that);
            return false;
        }

        public boolean equals(countKeyCriteriaTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCriteriaTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCriteriaTime_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCriteriaTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteriaTime_resultStandardScheme getScheme() {
                return new countKeyCriteriaTime_resultStandardScheme();
            }
        }

        private static class countKeyCriteriaTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCriteriaTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteriaTime_resultTupleScheme getScheme() {
                return new countKeyCriteriaTime_resultTupleScheme();
            }
        }

        private static class countKeyCriteriaTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCriteriaTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCriteriaTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCriteriaTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCriteriaTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCriteriaTimestr_args.class, metaDataMap);
        }

        public countKeyCriteriaTimestr_args() {}

        public countKeyCriteriaTimestr_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCriteriaTimestr_args(
                countKeyCriteriaTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyCriteriaTimestr_args deepCopy() {
            return new countKeyCriteriaTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyCriteriaTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public countKeyCriteriaTimestr_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public countKeyCriteriaTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyCriteriaTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyCriteriaTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyCriteriaTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCriteriaTimestr_args)
                return this.equals((countKeyCriteriaTimestr_args) that);
            return false;
        }

        public boolean equals(countKeyCriteriaTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCriteriaTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCriteriaTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCriteriaTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteriaTimestr_argsStandardScheme getScheme() {
                return new countKeyCriteriaTimestr_argsStandardScheme();
            }
        }

        private static class countKeyCriteriaTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCriteriaTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteriaTimestr_argsTupleScheme getScheme() {
                return new countKeyCriteriaTimestr_argsTupleScheme();
            }
        }

        private static class countKeyCriteriaTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCriteriaTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCriteriaTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCriteriaTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCriteriaTimestr_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCriteriaTimestr_result.class, metaDataMap);
        }

        public countKeyCriteriaTimestr_result() {}

        public countKeyCriteriaTimestr_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCriteriaTimestr_result(
                countKeyCriteriaTimestr_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public countKeyCriteriaTimestr_result deepCopy() {
            return new countKeyCriteriaTimestr_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyCriteriaTimestr_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyCriteriaTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyCriteriaTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public countKeyCriteriaTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public countKeyCriteriaTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public countKeyCriteriaTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCriteriaTimestr_result)
                return this.equals((countKeyCriteriaTimestr_result) that);
            return false;
        }

        public boolean equals(countKeyCriteriaTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCriteriaTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCriteriaTimestr_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCriteriaTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteriaTimestr_resultStandardScheme getScheme() {
                return new countKeyCriteriaTimestr_resultStandardScheme();
            }
        }

        private static class countKeyCriteriaTimestr_resultStandardScheme
                extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCriteriaTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCriteriaTimestr_resultTupleScheme getScheme() {
                return new countKeyCriteriaTimestr_resultTupleScheme();
            }
        }

        private static class countKeyCriteriaTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCcl_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCcl_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCcl_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCcl_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(countKeyCcl_args.class, metaDataMap);
        }

        public countKeyCcl_args() {}

        public countKeyCcl_args(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCcl_args(countKeyCcl_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyCcl_args deepCopy() {
            return new countKeyCcl_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyCcl_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public countKeyCcl_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyCcl_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyCcl_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyCcl_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCcl_args)
                return this.equals((countKeyCcl_args) that);
            return false;
        }

        public boolean equals(countKeyCcl_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCcl_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCcl_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCcl_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCcl_argsStandardScheme getScheme() {
                return new countKeyCcl_argsStandardScheme();
            }
        }

        private static class countKeyCcl_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCcl_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCcl_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCcl_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCcl_argsTupleScheme getScheme() {
                return new countKeyCcl_argsTupleScheme();
            }
        }

        private static class countKeyCcl_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCcl_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCcl_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCcl_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCcl_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCcl_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCcl_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCcl_result.class, metaDataMap);
        }

        public countKeyCcl_result() {}

        public countKeyCcl_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCcl_result(countKeyCcl_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public countKeyCcl_result deepCopy() {
            return new countKeyCcl_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyCcl_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyCcl_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyCcl_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public countKeyCcl_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public countKeyCcl_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public countKeyCcl_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCcl_result)
                return this.equals((countKeyCcl_result) that);
            return false;
        }

        public boolean equals(countKeyCcl_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCcl_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCcl_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCcl_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCcl_resultStandardScheme getScheme() {
                return new countKeyCcl_resultStandardScheme();
            }
        }

        private static class countKeyCcl_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCcl_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCcl_resultTupleScheme getScheme() {
                return new countKeyCcl_resultTupleScheme();
            }
        }

        private static class countKeyCcl_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCclTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCclTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCclTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCclTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCclTime_args.class, metaDataMap);
        }

        public countKeyCclTime_args() {}

        public countKeyCclTime_args(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCclTime_args(countKeyCclTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyCclTime_args deepCopy() {
            return new countKeyCclTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyCclTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public countKeyCclTime_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public countKeyCclTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyCclTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyCclTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyCclTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCclTime_args)
                return this.equals((countKeyCclTime_args) that);
            return false;
        }

        public boolean equals(countKeyCclTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCclTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCclTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCclTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCclTime_argsStandardScheme getScheme() {
                return new countKeyCclTime_argsStandardScheme();
            }
        }

        private static class countKeyCclTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCclTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCclTime_argsTupleScheme getScheme() {
                return new countKeyCclTime_argsTupleScheme();
            }
        }

        private static class countKeyCclTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCclTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCclTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCclTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCclTime_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCclTime_result.class, metaDataMap);
        }

        public countKeyCclTime_result() {}

        public countKeyCclTime_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCclTime_result(countKeyCclTime_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public countKeyCclTime_result deepCopy() {
            return new countKeyCclTime_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyCclTime_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyCclTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyCclTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public countKeyCclTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public countKeyCclTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public countKeyCclTime_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCclTime_result)
                return this.equals((countKeyCclTime_result) that);
            return false;
        }

        public boolean equals(countKeyCclTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCclTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCclTime_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCclTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCclTime_resultStandardScheme getScheme() {
                return new countKeyCclTime_resultStandardScheme();
            }
        }

        private static class countKeyCclTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCclTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCclTime_resultTupleScheme getScheme() {
                return new countKeyCclTime_resultTupleScheme();
            }
        }

        private static class countKeyCclTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCclTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCclTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCclTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCclTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCclTimestr_args.class, metaDataMap);
        }

        public countKeyCclTimestr_args() {}

        public countKeyCclTimestr_args(java.lang.String key,
                java.lang.String ccl, java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCclTimestr_args(countKeyCclTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public countKeyCclTimestr_args deepCopy() {
            return new countKeyCclTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public countKeyCclTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public countKeyCclTimestr_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public countKeyCclTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public countKeyCclTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public countKeyCclTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public countKeyCclTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCclTimestr_args)
                return this.equals((countKeyCclTimestr_args) that);
            return false;
        }

        public boolean equals(countKeyCclTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCclTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCclTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCclTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCclTimestr_argsStandardScheme getScheme() {
                return new countKeyCclTimestr_argsStandardScheme();
            }
        }

        private static class countKeyCclTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCclTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCclTimestr_argsTupleScheme getScheme() {
                return new countKeyCclTimestr_argsTupleScheme();
            }
        }

        private static class countKeyCclTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class countKeyCclTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "countKeyCclTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.I64, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new countKeyCclTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new countKeyCclTimestr_resultTupleSchemeFactory();

        public long success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __SUCCESS_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    countKeyCclTimestr_result.class, metaDataMap);
        }

        public countKeyCclTimestr_result() {}

        public countKeyCclTimestr_result(long success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            setSuccessIsSet(true);
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public countKeyCclTimestr_result(countKeyCclTimestr_result other) {
            __isset_bitfield = other.__isset_bitfield;
            this.success = other.success;
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public countKeyCclTimestr_result deepCopy() {
            return new countKeyCclTimestr_result(this);
        }

        @Override
        public void clear() {
            setSuccessIsSet(false);
            this.success = 0;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        public long getSuccess() {
            return this.success;
        }

        public countKeyCclTimestr_result setSuccess(long success) {
            this.success = success;
            setSuccessIsSet(true);
            return this;
        }

        public void unsetSuccess() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __SUCCESS_ISSET_ID);
        }

        public void setSuccessIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public countKeyCclTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public countKeyCclTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public countKeyCclTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public countKeyCclTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public countKeyCclTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((java.lang.Long) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof countKeyCclTimestr_result)
                return this.equals((countKeyCclTimestr_result) that);
            return false;
        }

        public boolean equals(countKeyCclTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true;
            boolean that_present_success = true;
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(this.success != that.success)
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(success);

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(countKeyCclTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "countKeyCclTimestr_result(");
            boolean first = true;

            sb.append("success:");
            sb.append(this.success);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class countKeyCclTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCclTimestr_resultStandardScheme getScheme() {
                return new countKeyCclTimestr_resultStandardScheme();
            }
        }

        private static class countKeyCclTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    countKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.success = iprot.readI64();
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    countKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.isSetSuccess()) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    oprot.writeI64(struct.success);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class countKeyCclTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public countKeyCclTimestr_resultTupleScheme getScheme() {
                return new countKeyCclTimestr_resultTupleScheme();
            }
        }

        private static class countKeyCclTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    oprot.writeI64(struct.success);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    countKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = iprot.readI64();
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecord_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecord_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecord_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecord_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(maxKeyRecord_args.class, metaDataMap);
        }

        public maxKeyRecord_args() {}

        public maxKeyRecord_args(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecord_args(maxKeyRecord_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyRecord_args deepCopy() {
            return new maxKeyRecord_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyRecord_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public maxKeyRecord_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyRecord_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyRecord_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyRecord_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecord_args)
                return this.equals((maxKeyRecord_args) that);
            return false;
        }

        public boolean equals(maxKeyRecord_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecord_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecord_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecord_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecord_argsStandardScheme getScheme() {
                return new maxKeyRecord_argsStandardScheme();
            }
        }

        private static class maxKeyRecord_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecord_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecord_argsTupleScheme getScheme() {
                return new maxKeyRecord_argsTupleScheme();
            }
        }

        private static class maxKeyRecord_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecord_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecord_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecord_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecord_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecord_result.class, metaDataMap);
        }

        public maxKeyRecord_result() {}

        public maxKeyRecord_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecord_result(maxKeyRecord_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public maxKeyRecord_result deepCopy() {
            return new maxKeyRecord_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyRecord_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyRecord_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyRecord_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public maxKeyRecord_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public maxKeyRecord_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecord_result)
                return this.equals((maxKeyRecord_result) that);
            return false;
        }

        public boolean equals(maxKeyRecord_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecord_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecord_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecord_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecord_resultStandardScheme getScheme() {
                return new maxKeyRecord_resultStandardScheme();
            }
        }

        private static class maxKeyRecord_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecord_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecord_resultTupleScheme getScheme() {
                return new maxKeyRecord_resultTupleScheme();
            }
        }

        private static class maxKeyRecord_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecordTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecordTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecordTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecordTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private static final int __TIMESTAMP_ISSET_ID = 1;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecordTime_args.class, metaDataMap);
        }

        public maxKeyRecordTime_args() {}

        public maxKeyRecordTime_args(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecordTime_args(maxKeyRecordTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyRecordTime_args deepCopy() {
            return new maxKeyRecordTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyRecordTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public maxKeyRecordTime_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public maxKeyRecordTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyRecordTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyRecordTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyRecordTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecordTime_args)
                return this.equals((maxKeyRecordTime_args) that);
            return false;
        }

        public boolean equals(maxKeyRecordTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecordTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecordTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecordTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordTime_argsStandardScheme getScheme() {
                return new maxKeyRecordTime_argsStandardScheme();
            }
        }

        private static class maxKeyRecordTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecordTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordTime_argsTupleScheme getScheme() {
                return new maxKeyRecordTime_argsTupleScheme();
            }
        }

        private static class maxKeyRecordTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecordTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecordTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecordTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecordTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecordTime_result.class, metaDataMap);
        }

        public maxKeyRecordTime_result() {}

        public maxKeyRecordTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecordTime_result(maxKeyRecordTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public maxKeyRecordTime_result deepCopy() {
            return new maxKeyRecordTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyRecordTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyRecordTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyRecordTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public maxKeyRecordTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public maxKeyRecordTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecordTime_result)
                return this.equals((maxKeyRecordTime_result) that);
            return false;
        }

        public boolean equals(maxKeyRecordTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecordTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecordTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecordTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordTime_resultStandardScheme getScheme() {
                return new maxKeyRecordTime_resultStandardScheme();
            }
        }

        private static class maxKeyRecordTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecordTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordTime_resultTupleScheme getScheme() {
                return new maxKeyRecordTime_resultTupleScheme();
            }
        }

        private static class maxKeyRecordTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecordTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecordTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecordTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecordTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecordTimestr_args.class, metaDataMap);
        }

        public maxKeyRecordTimestr_args() {}

        public maxKeyRecordTimestr_args(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecordTimestr_args(maxKeyRecordTimestr_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyRecordTimestr_args deepCopy() {
            return new maxKeyRecordTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyRecordTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public maxKeyRecordTimestr_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public maxKeyRecordTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyRecordTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyRecordTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyRecordTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecordTimestr_args)
                return this.equals((maxKeyRecordTimestr_args) that);
            return false;
        }

        public boolean equals(maxKeyRecordTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecordTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecordTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecordTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordTimestr_argsStandardScheme getScheme() {
                return new maxKeyRecordTimestr_argsStandardScheme();
            }
        }

        private static class maxKeyRecordTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecordTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordTimestr_argsTupleScheme getScheme() {
                return new maxKeyRecordTimestr_argsTupleScheme();
            }
        }

        private static class maxKeyRecordTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecordTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecordTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecordTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecordTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecordTimestr_result.class, metaDataMap);
        }

        public maxKeyRecordTimestr_result() {}

        public maxKeyRecordTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecordTimestr_result(maxKeyRecordTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public maxKeyRecordTimestr_result deepCopy() {
            return new maxKeyRecordTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyRecordTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyRecordTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyRecordTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public maxKeyRecordTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public maxKeyRecordTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public maxKeyRecordTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecordTimestr_result)
                return this.equals((maxKeyRecordTimestr_result) that);
            return false;
        }

        public boolean equals(maxKeyRecordTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecordTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecordTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecordTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordTimestr_resultStandardScheme getScheme() {
                return new maxKeyRecordTimestr_resultStandardScheme();
            }
        }

        private static class maxKeyRecordTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecordTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordTimestr_resultTupleScheme getScheme() {
                return new maxKeyRecordTimestr_resultTupleScheme();
            }
        }

        private static class maxKeyRecordTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecords_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecords_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecords_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecords_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecords_args.class, metaDataMap);
        }

        public maxKeyRecords_args() {}

        public maxKeyRecords_args(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecords_args(maxKeyRecords_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyRecords_args deepCopy() {
            return new maxKeyRecords_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyRecords_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public maxKeyRecords_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyRecords_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyRecords_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyRecords_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecords_args)
                return this.equals((maxKeyRecords_args) that);
            return false;
        }

        public boolean equals(maxKeyRecords_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecords_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecords_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecords_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecords_argsStandardScheme getScheme() {
                return new maxKeyRecords_argsStandardScheme();
            }
        }

        private static class maxKeyRecords_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list72 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list72.size);
                                long _elem73;
                                for (int _i74 = 0; _i74 < _list72.size; ++_i74) {
                                    _elem73 = iprot.readI64();
                                    struct.records.add(_elem73);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter75 : struct.records) {
                            oprot.writeI64(_iter75);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecords_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecords_argsTupleScheme getScheme() {
                return new maxKeyRecords_argsTupleScheme();
            }
        }

        private static class maxKeyRecords_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter76 : struct.records) {
                            oprot.writeI64(_iter76);
                        }
                    }
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list77 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list77.size);
                        long _elem78;
                        for (int _i79 = 0; _i79 < _list77.size; ++_i79) {
                            _elem78 = iprot.readI64();
                            struct.records.add(_elem78);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecords_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecords_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecords_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecords_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecords_result.class, metaDataMap);
        }

        public maxKeyRecords_result() {}

        public maxKeyRecords_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecords_result(maxKeyRecords_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public maxKeyRecords_result deepCopy() {
            return new maxKeyRecords_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyRecords_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyRecords_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyRecords_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public maxKeyRecords_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public maxKeyRecords_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecords_result)
                return this.equals((maxKeyRecords_result) that);
            return false;
        }

        public boolean equals(maxKeyRecords_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecords_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecords_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecords_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecords_resultStandardScheme getScheme() {
                return new maxKeyRecords_resultStandardScheme();
            }
        }

        private static class maxKeyRecords_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecords_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecords_resultTupleScheme getScheme() {
                return new maxKeyRecords_resultTupleScheme();
            }
        }

        private static class maxKeyRecords_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecordsTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecordsTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecordsTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecordsTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecordsTime_args.class, metaDataMap);
        }

        public maxKeyRecordsTime_args() {}

        public maxKeyRecordsTime_args(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecordsTime_args(maxKeyRecordsTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyRecordsTime_args deepCopy() {
            return new maxKeyRecordsTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyRecordsTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public maxKeyRecordsTime_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public maxKeyRecordsTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyRecordsTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyRecordsTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyRecordsTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecordsTime_args)
                return this.equals((maxKeyRecordsTime_args) that);
            return false;
        }

        public boolean equals(maxKeyRecordsTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecordsTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecordsTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecordsTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordsTime_argsStandardScheme getScheme() {
                return new maxKeyRecordsTime_argsStandardScheme();
            }
        }

        private static class maxKeyRecordsTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list80 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list80.size);
                                long _elem81;
                                for (int _i82 = 0; _i82 < _list80.size; ++_i82) {
                                    _elem81 = iprot.readI64();
                                    struct.records.add(_elem81);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter83 : struct.records) {
                            oprot.writeI64(_iter83);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecordsTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordsTime_argsTupleScheme getScheme() {
                return new maxKeyRecordsTime_argsTupleScheme();
            }
        }

        private static class maxKeyRecordsTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter84 : struct.records) {
                            oprot.writeI64(_iter84);
                        }
                    }
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list85 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list85.size);
                        long _elem86;
                        for (int _i87 = 0; _i87 < _list85.size; ++_i87) {
                            _elem86 = iprot.readI64();
                            struct.records.add(_elem86);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecordsTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecordsTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecordsTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecordsTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecordsTime_result.class, metaDataMap);
        }

        public maxKeyRecordsTime_result() {}

        public maxKeyRecordsTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecordsTime_result(maxKeyRecordsTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public maxKeyRecordsTime_result deepCopy() {
            return new maxKeyRecordsTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyRecordsTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyRecordsTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyRecordsTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public maxKeyRecordsTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public maxKeyRecordsTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecordsTime_result)
                return this.equals((maxKeyRecordsTime_result) that);
            return false;
        }

        public boolean equals(maxKeyRecordsTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecordsTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecordsTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecordsTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordsTime_resultStandardScheme getScheme() {
                return new maxKeyRecordsTime_resultStandardScheme();
            }
        }

        private static class maxKeyRecordsTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecordsTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordsTime_resultTupleScheme getScheme() {
                return new maxKeyRecordsTime_resultTupleScheme();
            }
        }

        private static class maxKeyRecordsTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecordsTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecordsTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecordsTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecordsTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecordsTimestr_args.class, metaDataMap);
        }

        public maxKeyRecordsTimestr_args() {}

        public maxKeyRecordsTimestr_args(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecordsTimestr_args(maxKeyRecordsTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyRecordsTimestr_args deepCopy() {
            return new maxKeyRecordsTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyRecordsTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public maxKeyRecordsTimestr_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public maxKeyRecordsTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyRecordsTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyRecordsTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyRecordsTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecordsTimestr_args)
                return this.equals((maxKeyRecordsTimestr_args) that);
            return false;
        }

        public boolean equals(maxKeyRecordsTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecordsTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecordsTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecordsTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordsTimestr_argsStandardScheme getScheme() {
                return new maxKeyRecordsTimestr_argsStandardScheme();
            }
        }

        private static class maxKeyRecordsTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list88 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list88.size);
                                long _elem89;
                                for (int _i90 = 0; _i90 < _list88.size; ++_i90) {
                                    _elem89 = iprot.readI64();
                                    struct.records.add(_elem89);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter91 : struct.records) {
                            oprot.writeI64(_iter91);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecordsTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordsTimestr_argsTupleScheme getScheme() {
                return new maxKeyRecordsTimestr_argsTupleScheme();
            }
        }

        private static class maxKeyRecordsTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter92 : struct.records) {
                            oprot.writeI64(_iter92);
                        }
                    }
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list93 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list93.size);
                        long _elem94;
                        for (int _i95 = 0; _i95 < _list93.size; ++_i95) {
                            _elem94 = iprot.readI64();
                            struct.records.add(_elem94);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyRecordsTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyRecordsTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyRecordsTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyRecordsTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyRecordsTimestr_result.class, metaDataMap);
        }

        public maxKeyRecordsTimestr_result() {}

        public maxKeyRecordsTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyRecordsTimestr_result(maxKeyRecordsTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public maxKeyRecordsTimestr_result deepCopy() {
            return new maxKeyRecordsTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyRecordsTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyRecordsTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyRecordsTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public maxKeyRecordsTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public maxKeyRecordsTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public maxKeyRecordsTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyRecordsTimestr_result)
                return this.equals((maxKeyRecordsTimestr_result) that);
            return false;
        }

        public boolean equals(maxKeyRecordsTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyRecordsTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyRecordsTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyRecordsTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordsTimestr_resultStandardScheme getScheme() {
                return new maxKeyRecordsTimestr_resultStandardScheme();
            }
        }

        private static class maxKeyRecordsTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyRecordsTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyRecordsTimestr_resultTupleScheme getScheme() {
                return new maxKeyRecordsTimestr_resultTupleScheme();
            }
        }

        private static class maxKeyRecordsTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCriteria_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCriteria_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCriteria_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCriteria_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyCriteria_args.class, metaDataMap);
        }

        public maxKeyCriteria_args() {}

        public maxKeyCriteria_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCriteria_args(maxKeyCriteria_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyCriteria_args deepCopy() {
            return new maxKeyCriteria_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyCriteria_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public maxKeyCriteria_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyCriteria_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyCriteria_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyCriteria_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCriteria_args)
                return this.equals((maxKeyCriteria_args) that);
            return false;
        }

        public boolean equals(maxKeyCriteria_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCriteria_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCriteria_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCriteria_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteria_argsStandardScheme getScheme() {
                return new maxKeyCriteria_argsStandardScheme();
            }
        }

        private static class maxKeyCriteria_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCriteria_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteria_argsTupleScheme getScheme() {
                return new maxKeyCriteria_argsTupleScheme();
            }
        }

        private static class maxKeyCriteria_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCriteria_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCriteria_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCriteria_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCriteria_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyCriteria_result.class, metaDataMap);
        }

        public maxKeyCriteria_result() {}

        public maxKeyCriteria_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCriteria_result(maxKeyCriteria_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public maxKeyCriteria_result deepCopy() {
            return new maxKeyCriteria_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyCriteria_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyCriteria_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyCriteria_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public maxKeyCriteria_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public maxKeyCriteria_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCriteria_result)
                return this.equals((maxKeyCriteria_result) that);
            return false;
        }

        public boolean equals(maxKeyCriteria_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCriteria_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCriteria_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCriteria_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteria_resultStandardScheme getScheme() {
                return new maxKeyCriteria_resultStandardScheme();
            }
        }

        private static class maxKeyCriteria_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCriteria_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteria_resultTupleScheme getScheme() {
                return new maxKeyCriteria_resultTupleScheme();
            }
        }

        private static class maxKeyCriteria_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCriteriaTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCriteriaTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCriteriaTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCriteriaTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyCriteriaTime_args.class, metaDataMap);
        }

        public maxKeyCriteriaTime_args() {}

        public maxKeyCriteriaTime_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCriteriaTime_args(maxKeyCriteriaTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyCriteriaTime_args deepCopy() {
            return new maxKeyCriteriaTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyCriteriaTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public maxKeyCriteriaTime_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public maxKeyCriteriaTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyCriteriaTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyCriteriaTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyCriteriaTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCriteriaTime_args)
                return this.equals((maxKeyCriteriaTime_args) that);
            return false;
        }

        public boolean equals(maxKeyCriteriaTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCriteriaTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCriteriaTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCriteriaTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteriaTime_argsStandardScheme getScheme() {
                return new maxKeyCriteriaTime_argsStandardScheme();
            }
        }

        private static class maxKeyCriteriaTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCriteriaTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteriaTime_argsTupleScheme getScheme() {
                return new maxKeyCriteriaTime_argsTupleScheme();
            }
        }

        private static class maxKeyCriteriaTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCriteriaTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCriteriaTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCriteriaTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCriteriaTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyCriteriaTime_result.class, metaDataMap);
        }

        public maxKeyCriteriaTime_result() {}

        public maxKeyCriteriaTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCriteriaTime_result(maxKeyCriteriaTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public maxKeyCriteriaTime_result deepCopy() {
            return new maxKeyCriteriaTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyCriteriaTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyCriteriaTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyCriteriaTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public maxKeyCriteriaTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public maxKeyCriteriaTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCriteriaTime_result)
                return this.equals((maxKeyCriteriaTime_result) that);
            return false;
        }

        public boolean equals(maxKeyCriteriaTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCriteriaTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCriteriaTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCriteriaTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteriaTime_resultStandardScheme getScheme() {
                return new maxKeyCriteriaTime_resultStandardScheme();
            }
        }

        private static class maxKeyCriteriaTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCriteriaTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteriaTime_resultTupleScheme getScheme() {
                return new maxKeyCriteriaTime_resultTupleScheme();
            }
        }

        private static class maxKeyCriteriaTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCriteriaTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCriteriaTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCriteriaTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCriteriaTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyCriteriaTimestr_args.class, metaDataMap);
        }

        public maxKeyCriteriaTimestr_args() {}

        public maxKeyCriteriaTimestr_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCriteriaTimestr_args(maxKeyCriteriaTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyCriteriaTimestr_args deepCopy() {
            return new maxKeyCriteriaTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyCriteriaTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public maxKeyCriteriaTimestr_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public maxKeyCriteriaTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyCriteriaTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyCriteriaTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyCriteriaTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCriteriaTimestr_args)
                return this.equals((maxKeyCriteriaTimestr_args) that);
            return false;
        }

        public boolean equals(maxKeyCriteriaTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCriteriaTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCriteriaTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCriteriaTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteriaTimestr_argsStandardScheme getScheme() {
                return new maxKeyCriteriaTimestr_argsStandardScheme();
            }
        }

        private static class maxKeyCriteriaTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCriteriaTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteriaTimestr_argsTupleScheme getScheme() {
                return new maxKeyCriteriaTimestr_argsTupleScheme();
            }
        }

        private static class maxKeyCriteriaTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCriteriaTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCriteriaTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCriteriaTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCriteriaTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyCriteriaTimestr_result.class, metaDataMap);
        }

        public maxKeyCriteriaTimestr_result() {}

        public maxKeyCriteriaTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCriteriaTimestr_result(
                maxKeyCriteriaTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public maxKeyCriteriaTimestr_result deepCopy() {
            return new maxKeyCriteriaTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyCriteriaTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyCriteriaTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyCriteriaTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public maxKeyCriteriaTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public maxKeyCriteriaTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public maxKeyCriteriaTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCriteriaTimestr_result)
                return this.equals((maxKeyCriteriaTimestr_result) that);
            return false;
        }

        public boolean equals(maxKeyCriteriaTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCriteriaTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCriteriaTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCriteriaTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteriaTimestr_resultStandardScheme getScheme() {
                return new maxKeyCriteriaTimestr_resultStandardScheme();
            }
        }

        private static class maxKeyCriteriaTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCriteriaTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCriteriaTimestr_resultTupleScheme getScheme() {
                return new maxKeyCriteriaTimestr_resultTupleScheme();
            }
        }

        private static class maxKeyCriteriaTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCcl_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCcl_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCcl_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCcl_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(maxKeyCcl_args.class, metaDataMap);
        }

        public maxKeyCcl_args() {}

        public maxKeyCcl_args(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCcl_args(maxKeyCcl_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyCcl_args deepCopy() {
            return new maxKeyCcl_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyCcl_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public maxKeyCcl_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyCcl_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyCcl_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyCcl_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCcl_args)
                return this.equals((maxKeyCcl_args) that);
            return false;
        }

        public boolean equals(maxKeyCcl_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCcl_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCcl_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCcl_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCcl_argsStandardScheme getScheme() {
                return new maxKeyCcl_argsStandardScheme();
            }
        }

        private static class maxKeyCcl_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCcl_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCcl_args struct) throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCcl_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCcl_argsTupleScheme getScheme() {
                return new maxKeyCcl_argsTupleScheme();
            }
        }

        private static class maxKeyCcl_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCcl_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCcl_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCcl_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCcl_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCcl_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCcl_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(maxKeyCcl_result.class, metaDataMap);
        }

        public maxKeyCcl_result() {}

        public maxKeyCcl_result(com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCcl_result(maxKeyCcl_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public maxKeyCcl_result deepCopy() {
            return new maxKeyCcl_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyCcl_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyCcl_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyCcl_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public maxKeyCcl_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public maxKeyCcl_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public maxKeyCcl_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCcl_result)
                return this.equals((maxKeyCcl_result) that);
            return false;
        }

        public boolean equals(maxKeyCcl_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCcl_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCcl_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCcl_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCcl_resultStandardScheme getScheme() {
                return new maxKeyCcl_resultStandardScheme();
            }
        }

        private static class maxKeyCcl_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCcl_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCcl_resultTupleScheme getScheme() {
                return new maxKeyCcl_resultTupleScheme();
            }
        }

        private static class maxKeyCcl_resultTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCclTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCclTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCclTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCclTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyCclTime_args.class, metaDataMap);
        }

        public maxKeyCclTime_args() {}

        public maxKeyCclTime_args(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCclTime_args(maxKeyCclTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyCclTime_args deepCopy() {
            return new maxKeyCclTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyCclTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public maxKeyCclTime_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public maxKeyCclTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyCclTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyCclTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyCclTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCclTime_args)
                return this.equals((maxKeyCclTime_args) that);
            return false;
        }

        public boolean equals(maxKeyCclTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCclTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCclTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCclTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCclTime_argsStandardScheme getScheme() {
                return new maxKeyCclTime_argsStandardScheme();
            }
        }

        private static class maxKeyCclTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCclTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCclTime_argsTupleScheme getScheme() {
                return new maxKeyCclTime_argsTupleScheme();
            }
        }

        private static class maxKeyCclTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCclTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCclTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCclTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCclTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyCclTime_result.class, metaDataMap);
        }

        public maxKeyCclTime_result() {}

        public maxKeyCclTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCclTime_result(maxKeyCclTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public maxKeyCclTime_result deepCopy() {
            return new maxKeyCclTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyCclTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyCclTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyCclTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public maxKeyCclTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public maxKeyCclTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public maxKeyCclTime_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCclTime_result)
                return this.equals((maxKeyCclTime_result) that);
            return false;
        }

        public boolean equals(maxKeyCclTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCclTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCclTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCclTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCclTime_resultStandardScheme getScheme() {
                return new maxKeyCclTime_resultStandardScheme();
            }
        }

        private static class maxKeyCclTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCclTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCclTime_resultTupleScheme getScheme() {
                return new maxKeyCclTime_resultTupleScheme();
            }
        }

        private static class maxKeyCclTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCclTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCclTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCclTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCclTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyCclTimestr_args.class, metaDataMap);
        }

        public maxKeyCclTimestr_args() {}

        public maxKeyCclTimestr_args(java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCclTimestr_args(maxKeyCclTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyCclTimestr_args deepCopy() {
            return new maxKeyCclTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyCclTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public maxKeyCclTimestr_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public maxKeyCclTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyCclTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyCclTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyCclTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCclTimestr_args)
                return this.equals((maxKeyCclTimestr_args) that);
            return false;
        }

        public boolean equals(maxKeyCclTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCclTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCclTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCclTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCclTimestr_argsStandardScheme getScheme() {
                return new maxKeyCclTimestr_argsStandardScheme();
            }
        }

        private static class maxKeyCclTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCclTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCclTimestr_argsTupleScheme getScheme() {
                return new maxKeyCclTimestr_argsTupleScheme();
            }
        }

        private static class maxKeyCclTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyCclTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyCclTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyCclTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyCclTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyCclTimestr_result.class, metaDataMap);
        }

        public maxKeyCclTimestr_result() {}

        public maxKeyCclTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyCclTimestr_result(maxKeyCclTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public maxKeyCclTimestr_result deepCopy() {
            return new maxKeyCclTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyCclTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyCclTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyCclTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public maxKeyCclTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public maxKeyCclTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public maxKeyCclTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyCclTimestr_result)
                return this.equals((maxKeyCclTimestr_result) that);
            return false;
        }

        public boolean equals(maxKeyCclTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyCclTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyCclTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyCclTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCclTimestr_resultStandardScheme getScheme() {
                return new maxKeyCclTimestr_resultStandardScheme();
            }
        }

        private static class maxKeyCclTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyCclTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyCclTimestr_resultTupleScheme getScheme() {
                return new maxKeyCclTimestr_resultTupleScheme();
            }
        }

        private static class maxKeyCclTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKey_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKey_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 3);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKey_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKey_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CREDS((short) 2, "creds"),
            TRANSACTION((short) 3, "transaction"),
            ENVIRONMENT((short) 4, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CREDS
                    return CREDS;
                case 3: // TRANSACTION
                    return TRANSACTION;
                case 4: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(maxKey_args.class, metaDataMap);
        }

        public maxKey_args() {}

        public maxKey_args(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKey_args(maxKey_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKey_args deepCopy() {
            return new maxKey_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKey_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKey_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKey_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKey_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKey_args)
                return this.equals((maxKey_args) that);
            return false;
        }

        public boolean equals(maxKey_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKey_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKey_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKey_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKey_argsStandardScheme getScheme() {
                return new maxKey_argsStandardScheme();
            }
        }

        private static class maxKey_argsStandardScheme
                extends org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKey_args struct) throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKey_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKey_argsTupleScheme getScheme() {
                return new maxKey_argsTupleScheme();
            }
        }

        private static class maxKey_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCreds()) {
                    optionals.set(1);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(2);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(3);
                }
                oprot.writeBitSet(optionals, 4);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(4);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKey_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKey_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKey_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKey_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(maxKey_result.class, metaDataMap);
        }

        public maxKey_result() {}

        public maxKey_result(com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKey_result(maxKey_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public maxKey_result deepCopy() {
            return new maxKey_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKey_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKey_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKey_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public maxKey_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public maxKey_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKey_result)
                return this.equals((maxKey_result) that);
            return false;
        }

        public boolean equals(maxKey_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKey_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKey_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKey_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKey_resultStandardScheme getScheme() {
                return new maxKey_resultStandardScheme();
            }
        }

        private static class maxKey_resultStandardScheme
                extends org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKey_result struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKey_result struct) throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKey_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKey_resultTupleScheme getScheme() {
                return new maxKey_resultTupleScheme();
            }
        }

        private static class maxKey_resultTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKey_result struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKey_result struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            TIMESTAMP((short) 2, "timestamp"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // TIMESTAMP
                    return TIMESTAMP;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(maxKeyTime_args.class, metaDataMap);
        }

        public maxKeyTime_args() {}

        public maxKeyTime_args(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyTime_args(maxKeyTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyTime_args deepCopy() {
            return new maxKeyTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public maxKeyTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyTime_args)
                return this.equals((maxKeyTime_args) that);
            return false;
        }

        public boolean equals(maxKeyTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyTime_argsStandardScheme getScheme() {
                return new maxKeyTime_argsStandardScheme();
            }
        }

        private static class maxKeyTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyTime_argsTupleScheme getScheme() {
                return new maxKeyTime_argsTupleScheme();
            }
        }

        private static class maxKeyTime_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(maxKeyTime_result.class, metaDataMap);
        }

        public maxKeyTime_result() {}

        public maxKeyTime_result(com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyTime_result(maxKeyTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public maxKeyTime_result deepCopy() {
            return new maxKeyTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public maxKeyTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public maxKeyTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyTime_result)
                return this.equals((maxKeyTime_result) that);
            return false;
        }

        public boolean equals(maxKeyTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyTime_resultStandardScheme getScheme() {
                return new maxKeyTime_resultStandardScheme();
            }
        }

        private static class maxKeyTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyTime_resultTupleScheme getScheme() {
                return new maxKeyTime_resultTupleScheme();
            }
        }

        private static class maxKeyTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            TIMESTAMP((short) 2, "timestamp"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // TIMESTAMP
                    return TIMESTAMP;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyTimestr_args.class, metaDataMap);
        }

        public maxKeyTimestr_args() {}

        public maxKeyTimestr_args(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyTimestr_args(maxKeyTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public maxKeyTimestr_args deepCopy() {
            return new maxKeyTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public maxKeyTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public maxKeyTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public maxKeyTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public maxKeyTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public maxKeyTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyTimestr_args)
                return this.equals((maxKeyTimestr_args) that);
            return false;
        }

        public boolean equals(maxKeyTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyTimestr_argsStandardScheme getScheme() {
                return new maxKeyTimestr_argsStandardScheme();
            }
        }

        private static class maxKeyTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyTimestr_argsTupleScheme getScheme() {
                return new maxKeyTimestr_argsTupleScheme();
            }
        }

        private static class maxKeyTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class maxKeyTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "maxKeyTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new maxKeyTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new maxKeyTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    maxKeyTimestr_result.class, metaDataMap);
        }

        public maxKeyTimestr_result() {}

        public maxKeyTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public maxKeyTimestr_result(maxKeyTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public maxKeyTimestr_result deepCopy() {
            return new maxKeyTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public maxKeyTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public maxKeyTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public maxKeyTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public maxKeyTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public maxKeyTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public maxKeyTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof maxKeyTimestr_result)
                return this.equals((maxKeyTimestr_result) that);
            return false;
        }

        public boolean equals(maxKeyTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(maxKeyTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "maxKeyTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class maxKeyTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyTimestr_resultStandardScheme getScheme() {
                return new maxKeyTimestr_resultStandardScheme();
            }
        }

        private static class maxKeyTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    maxKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    maxKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class maxKeyTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public maxKeyTimestr_resultTupleScheme getScheme() {
                return new maxKeyTimestr_resultTupleScheme();
            }
        }

        private static class maxKeyTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    maxKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecord_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecord_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecord_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecord_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(minKeyRecord_args.class, metaDataMap);
        }

        public minKeyRecord_args() {}

        public minKeyRecord_args(java.lang.String key, long record,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecord_args(minKeyRecord_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyRecord_args deepCopy() {
            return new minKeyRecord_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyRecord_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public minKeyRecord_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyRecord_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyRecord_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyRecord_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecord_args)
                return this.equals((minKeyRecord_args) that);
            return false;
        }

        public boolean equals(minKeyRecord_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecord_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecord_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecord_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecord_argsStandardScheme getScheme() {
                return new minKeyRecord_argsStandardScheme();
            }
        }

        private static class minKeyRecord_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecord_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecord_argsTupleScheme getScheme() {
                return new minKeyRecord_argsTupleScheme();
            }
        }

        private static class minKeyRecord_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecord_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecord_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecord_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecord_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecord_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecord_result.class, metaDataMap);
        }

        public minKeyRecord_result() {}

        public minKeyRecord_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecord_result(minKeyRecord_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public minKeyRecord_result deepCopy() {
            return new minKeyRecord_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyRecord_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyRecord_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyRecord_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public minKeyRecord_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public minKeyRecord_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecord_result)
                return this.equals((minKeyRecord_result) that);
            return false;
        }

        public boolean equals(minKeyRecord_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecord_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecord_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecord_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecord_resultStandardScheme getScheme() {
                return new minKeyRecord_resultStandardScheme();
            }
        }

        private static class minKeyRecord_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecord_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecord_resultTupleScheme getScheme() {
                return new minKeyRecord_resultTupleScheme();
            }
        }

        private static class minKeyRecord_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecord_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecordTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecordTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecordTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecordTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private static final int __TIMESTAMP_ISSET_ID = 1;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecordTime_args.class, metaDataMap);
        }

        public minKeyRecordTime_args() {}

        public minKeyRecordTime_args(java.lang.String key, long record,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecordTime_args(minKeyRecordTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyRecordTime_args deepCopy() {
            return new minKeyRecordTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyRecordTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public minKeyRecordTime_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public minKeyRecordTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyRecordTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyRecordTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyRecordTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecordTime_args)
                return this.equals((minKeyRecordTime_args) that);
            return false;
        }

        public boolean equals(minKeyRecordTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecordTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecordTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecordTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordTime_argsStandardScheme getScheme() {
                return new minKeyRecordTime_argsStandardScheme();
            }
        }

        private static class minKeyRecordTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecordTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordTime_argsTupleScheme getScheme() {
                return new minKeyRecordTime_argsTupleScheme();
            }
        }

        private static class minKeyRecordTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecordTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecordTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecordTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecordTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecordTime_result.class, metaDataMap);
        }

        public minKeyRecordTime_result() {}

        public minKeyRecordTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecordTime_result(minKeyRecordTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public minKeyRecordTime_result deepCopy() {
            return new minKeyRecordTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyRecordTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyRecordTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyRecordTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public minKeyRecordTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public minKeyRecordTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecordTime_result)
                return this.equals((minKeyRecordTime_result) that);
            return false;
        }

        public boolean equals(minKeyRecordTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecordTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecordTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecordTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordTime_resultStandardScheme getScheme() {
                return new minKeyRecordTime_resultStandardScheme();
            }
        }

        private static class minKeyRecordTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecordTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordTime_resultTupleScheme getScheme() {
                return new minKeyRecordTime_resultTupleScheme();
            }
        }

        private static class minKeyRecordTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecordTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecordTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORD_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "record", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecordTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecordTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long record; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORD((short) 2, "record"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORD
                    return RECORD;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __RECORD_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORD,
                    new org.apache.thrift.meta_data.FieldMetaData("record",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecordTimestr_args.class, metaDataMap);
        }

        public minKeyRecordTimestr_args() {}

        public minKeyRecordTimestr_args(java.lang.String key, long record,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.record = record;
            setRecordIsSet(true);
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecordTimestr_args(minKeyRecordTimestr_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.record = other.record;
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyRecordTimestr_args deepCopy() {
            return new minKeyRecordTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setRecordIsSet(false);
            this.record = 0;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyRecordTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getRecord() {
            return this.record;
        }

        public minKeyRecordTimestr_args setRecord(long record) {
            this.record = record;
            setRecordIsSet(true);
            return this;
        }

        public void unsetRecord() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __RECORD_ISSET_ID);
        }

        /**
         * Returns true if field record is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecord() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __RECORD_ISSET_ID);
        }

        public void setRecordIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __RECORD_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public minKeyRecordTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyRecordTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyRecordTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyRecordTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORD:
                if(value == null) {
                    unsetRecord();
                }
                else {
                    setRecord((java.lang.Long) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORD:
                return getRecord();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORD:
                return isSetRecord();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecordTimestr_args)
                return this.equals((minKeyRecordTimestr_args) that);
            return false;
        }

        public boolean equals(minKeyRecordTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_record = true;
            boolean that_present_record = true;
            if(this_present_record || that_present_record) {
                if(!(this_present_record && that_present_record))
                    return false;
                if(this.record != that.record)
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(record);

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecordTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecord())
                    .compareTo(other.isSetRecord());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecord()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.record, other.record);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecordTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("record:");
            sb.append(this.record);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecordTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordTimestr_argsStandardScheme getScheme() {
                return new minKeyRecordTimestr_argsStandardScheme();
            }
        }

        private static class minKeyRecordTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORD
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.record = iprot.readI64();
                            struct.setRecordIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(RECORD_FIELD_DESC);
                oprot.writeI64(struct.record);
                oprot.writeFieldEnd();
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecordTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordTimestr_argsTupleScheme getScheme() {
                return new minKeyRecordTimestr_argsTupleScheme();
            }
        }

        private static class minKeyRecordTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecord()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecord()) {
                    oprot.writeI64(struct.record);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.record = iprot.readI64();
                    struct.setRecordIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecordTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecordTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecordTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecordTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecordTimestr_result.class, metaDataMap);
        }

        public minKeyRecordTimestr_result() {}

        public minKeyRecordTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecordTimestr_result(minKeyRecordTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public minKeyRecordTimestr_result deepCopy() {
            return new minKeyRecordTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyRecordTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyRecordTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyRecordTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public minKeyRecordTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public minKeyRecordTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public minKeyRecordTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecordTimestr_result)
                return this.equals((minKeyRecordTimestr_result) that);
            return false;
        }

        public boolean equals(minKeyRecordTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecordTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecordTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecordTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordTimestr_resultStandardScheme getScheme() {
                return new minKeyRecordTimestr_resultStandardScheme();
            }
        }

        private static class minKeyRecordTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecordTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordTimestr_resultTupleScheme getScheme() {
                return new minKeyRecordTimestr_resultTupleScheme();
            }
        }

        private static class minKeyRecordTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKey_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKey_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 3);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKey_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKey_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CREDS((short) 2, "creds"),
            TRANSACTION((short) 3, "transaction"),
            ENVIRONMENT((short) 4, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CREDS
                    return CREDS;
                case 3: // TRANSACTION
                    return TRANSACTION;
                case 4: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(minKey_args.class, metaDataMap);
        }

        public minKey_args() {}

        public minKey_args(java.lang.String key,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKey_args(minKey_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKey_args deepCopy() {
            return new minKey_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKey_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKey_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKey_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKey_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKey_args)
                return this.equals((minKey_args) that);
            return false;
        }

        public boolean equals(minKey_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKey_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKey_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKey_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKey_argsStandardScheme getScheme() {
                return new minKey_argsStandardScheme();
            }
        }

        private static class minKey_argsStandardScheme
                extends org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKey_args struct) throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKey_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKey_argsTupleScheme getScheme() {
                return new minKey_argsTupleScheme();
            }
        }

        private static class minKey_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCreds()) {
                    optionals.set(1);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(2);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(3);
                }
                oprot.writeBitSet(optionals, 4);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKey_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(4);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKey_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKey_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKey_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKey_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(minKey_result.class, metaDataMap);
        }

        public minKey_result() {}

        public minKey_result(com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKey_result(minKey_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public minKey_result deepCopy() {
            return new minKey_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKey_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKey_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKey_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public minKey_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public minKey_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKey_result)
                return this.equals((minKey_result) that);
            return false;
        }

        public boolean equals(minKey_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKey_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKey_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKey_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKey_resultStandardScheme getScheme() {
                return new minKey_resultStandardScheme();
            }
        }

        private static class minKey_resultStandardScheme
                extends org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKey_result struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKey_result struct) throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKey_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKey_resultTupleScheme getScheme() {
                return new minKey_resultTupleScheme();
            }
        }

        private static class minKey_resultTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKey_result struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKey_result struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecordsTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecordsTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecordsTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecordsTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecordsTime_args.class, metaDataMap);
        }

        public minKeyRecordsTime_args() {}

        public minKeyRecordsTime_args(java.lang.String key,
                java.util.List records, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecordsTime_args(minKeyRecordsTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyRecordsTime_args deepCopy() {
            return new minKeyRecordsTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyRecordsTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public minKeyRecordsTime_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public minKeyRecordsTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyRecordsTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyRecordsTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyRecordsTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecordsTime_args)
                return this.equals((minKeyRecordsTime_args) that);
            return false;
        }

        public boolean equals(minKeyRecordsTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecordsTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecordsTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecordsTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordsTime_argsStandardScheme getScheme() {
                return new minKeyRecordsTime_argsStandardScheme();
            }
        }

        private static class minKeyRecordsTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list96 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list96.size);
                                long _elem97;
                                for (int _i98 = 0; _i98 < _list96.size; ++_i98) {
                                    _elem97 = iprot.readI64();
                                    struct.records.add(_elem97);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter99 : struct.records) {
                            oprot.writeI64(_iter99);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecordsTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordsTime_argsTupleScheme getScheme() {
                return new minKeyRecordsTime_argsTupleScheme();
            }
        }

        private static class minKeyRecordsTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter100 : struct.records) {
                            oprot.writeI64(_iter100);
                        }
                    }
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordsTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list101 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list101.size);
                        long _elem102;
                        for (int _i103 = 0; _i103 < _list101.size; ++_i103) {
                            _elem102 = iprot.readI64();
                            struct.records.add(_elem102);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecordsTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecordsTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecordsTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecordsTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecordsTime_result.class, metaDataMap);
        }

        public minKeyRecordsTime_result() {}

        public minKeyRecordsTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecordsTime_result(minKeyRecordsTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public minKeyRecordsTime_result deepCopy() {
            return new minKeyRecordsTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyRecordsTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyRecordsTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyRecordsTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public minKeyRecordsTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public minKeyRecordsTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecordsTime_result)
                return this.equals((minKeyRecordsTime_result) that);
            return false;
        }

        public boolean equals(minKeyRecordsTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecordsTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecordsTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecordsTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordsTime_resultStandardScheme getScheme() {
                return new minKeyRecordsTime_resultStandardScheme();
            }
        }

        private static class minKeyRecordsTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecordsTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordsTime_resultTupleScheme getScheme() {
                return new minKeyRecordsTime_resultTupleScheme();
            }
        }

        private static class minKeyRecordsTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordsTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecordsTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecordsTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecordsTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecordsTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecordsTimestr_args.class, metaDataMap);
        }

        public minKeyRecordsTimestr_args() {}

        public minKeyRecordsTimestr_args(java.lang.String key,
                java.util.List records,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecordsTimestr_args(minKeyRecordsTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyRecordsTimestr_args deepCopy() {
            return new minKeyRecordsTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyRecordsTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public minKeyRecordsTimestr_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public minKeyRecordsTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyRecordsTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyRecordsTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyRecordsTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecordsTimestr_args)
                return this.equals((minKeyRecordsTimestr_args) that);
            return false;
        }

        public boolean equals(minKeyRecordsTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecordsTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecordsTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecordsTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordsTimestr_argsStandardScheme getScheme() {
                return new minKeyRecordsTimestr_argsStandardScheme();
            }
        }

        private static class minKeyRecordsTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list104 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list104.size);
                                long _elem105;
                                for (int _i106 = 0; _i106 < _list104.size; ++_i106) {
                                    _elem105 = iprot.readI64();
                                    struct.records.add(_elem105);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter107 : struct.records) {
                            oprot.writeI64(_iter107);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecordsTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordsTimestr_argsTupleScheme getScheme() {
                return new minKeyRecordsTimestr_argsTupleScheme();
            }
        }

        private static class minKeyRecordsTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter108 : struct.records) {
                            oprot.writeI64(_iter108);
                        }
                    }
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordsTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list109 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list109.size);
                        long _elem110;
                        for (int _i111 = 0; _i111 < _list109.size; ++_i111) {
                            _elem110 = iprot.readI64();
                            struct.records.add(_elem110);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecordsTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecordsTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecordsTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecordsTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecordsTimestr_result.class, metaDataMap);
        }

        public minKeyRecordsTimestr_result() {}

        public minKeyRecordsTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecordsTimestr_result(minKeyRecordsTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public minKeyRecordsTimestr_result deepCopy() {
            return new minKeyRecordsTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyRecordsTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyRecordsTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyRecordsTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public minKeyRecordsTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public minKeyRecordsTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public minKeyRecordsTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecordsTimestr_result)
                return this.equals((minKeyRecordsTimestr_result) that);
            return false;
        }

        public boolean equals(minKeyRecordsTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecordsTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecordsTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecordsTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordsTimestr_resultStandardScheme getScheme() {
                return new minKeyRecordsTimestr_resultStandardScheme();
            }
        }

        private static class minKeyRecordsTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecordsTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecordsTimestr_resultTupleScheme getScheme() {
                return new minKeyRecordsTimestr_resultTupleScheme();
            }
        }

        private static class minKeyRecordsTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecordsTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCriteria_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCriteria_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCriteria_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCriteria_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyCriteria_args.class, metaDataMap);
        }

        public minKeyCriteria_args() {}

        public minKeyCriteria_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCriteria_args(minKeyCriteria_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyCriteria_args deepCopy() {
            return new minKeyCriteria_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyCriteria_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public minKeyCriteria_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyCriteria_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyCriteria_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyCriteria_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCriteria_args)
                return this.equals((minKeyCriteria_args) that);
            return false;
        }

        public boolean equals(minKeyCriteria_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCriteria_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCriteria_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCriteria_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteria_argsStandardScheme getScheme() {
                return new minKeyCriteria_argsStandardScheme();
            }
        }

        private static class minKeyCriteria_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCriteria_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteria_argsTupleScheme getScheme() {
                return new minKeyCriteria_argsTupleScheme();
            }
        }

        private static class minKeyCriteria_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteria_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCriteria_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCriteria_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCriteria_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCriteria_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyCriteria_result.class, metaDataMap);
        }

        public minKeyCriteria_result() {}

        public minKeyCriteria_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCriteria_result(minKeyCriteria_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public minKeyCriteria_result deepCopy() {
            return new minKeyCriteria_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyCriteria_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyCriteria_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyCriteria_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public minKeyCriteria_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public minKeyCriteria_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCriteria_result)
                return this.equals((minKeyCriteria_result) that);
            return false;
        }

        public boolean equals(minKeyCriteria_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCriteria_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCriteria_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCriteria_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteria_resultStandardScheme getScheme() {
                return new minKeyCriteria_resultStandardScheme();
            }
        }

        private static class minKeyCriteria_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCriteria_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteria_resultTupleScheme getScheme() {
                return new minKeyCriteria_resultTupleScheme();
            }
        }

        private static class minKeyCriteria_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteria_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCriteriaTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCriteriaTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCriteriaTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCriteriaTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyCriteriaTime_args.class, metaDataMap);
        }

        public minKeyCriteriaTime_args() {}

        public minKeyCriteriaTime_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCriteriaTime_args(minKeyCriteriaTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyCriteriaTime_args deepCopy() {
            return new minKeyCriteriaTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyCriteriaTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public minKeyCriteriaTime_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public minKeyCriteriaTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyCriteriaTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyCriteriaTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyCriteriaTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCriteriaTime_args)
                return this.equals((minKeyCriteriaTime_args) that);
            return false;
        }

        public boolean equals(minKeyCriteriaTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCriteriaTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCriteriaTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCriteriaTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteriaTime_argsStandardScheme getScheme() {
                return new minKeyCriteriaTime_argsStandardScheme();
            }
        }

        private static class minKeyCriteriaTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCriteriaTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteriaTime_argsTupleScheme getScheme() {
                return new minKeyCriteriaTime_argsTupleScheme();
            }
        }

        private static class minKeyCriteriaTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteriaTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCriteriaTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCriteriaTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCriteriaTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCriteriaTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyCriteriaTime_result.class, metaDataMap);
        }

        public minKeyCriteriaTime_result() {}

        public minKeyCriteriaTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCriteriaTime_result(minKeyCriteriaTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public minKeyCriteriaTime_result deepCopy() {
            return new minKeyCriteriaTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyCriteriaTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyCriteriaTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyCriteriaTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public minKeyCriteriaTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public minKeyCriteriaTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCriteriaTime_result)
                return this.equals((minKeyCriteriaTime_result) that);
            return false;
        }

        public boolean equals(minKeyCriteriaTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCriteriaTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCriteriaTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCriteriaTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteriaTime_resultStandardScheme getScheme() {
                return new minKeyCriteriaTime_resultStandardScheme();
            }
        }

        private static class minKeyCriteriaTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCriteriaTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteriaTime_resultTupleScheme getScheme() {
                return new minKeyCriteriaTime_resultTupleScheme();
            }
        }

        private static class minKeyCriteriaTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteriaTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCriteriaTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCriteriaTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CRITERIA_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "criteria", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCriteriaTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCriteriaTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CRITERIA((short) 2, "criteria"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CRITERIA
                    return CRITERIA;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CRITERIA,
                    new org.apache.thrift.meta_data.FieldMetaData("criteria",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TCriteria.class)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyCriteriaTimestr_args.class, metaDataMap);
        }

        public minKeyCriteriaTimestr_args() {}

        public minKeyCriteriaTimestr_args(java.lang.String key,
                com.cinchapi.concourse.thrift.TCriteria criteria,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.criteria = criteria;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCriteriaTimestr_args(minKeyCriteriaTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCriteria()) {
                this.criteria = new com.cinchapi.concourse.thrift.TCriteria(
                        other.criteria);
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyCriteriaTimestr_args deepCopy() {
            return new minKeyCriteriaTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.criteria = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyCriteriaTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TCriteria getCriteria() {
            return this.criteria;
        }

        public minKeyCriteriaTimestr_args setCriteria(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TCriteria criteria) {
            this.criteria = criteria;
            return this;
        }

        public void unsetCriteria() {
            this.criteria = null;
        }

        /**
         * Returns true if field criteria is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCriteria() {
            return this.criteria != null;
        }

        public void setCriteriaIsSet(boolean value) {
            if(!value) {
                this.criteria = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public minKeyCriteriaTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyCriteriaTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyCriteriaTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyCriteriaTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CRITERIA:
                if(value == null) {
                    unsetCriteria();
                }
                else {
                    setCriteria(
                            (com.cinchapi.concourse.thrift.TCriteria) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CRITERIA:
                return getCriteria();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CRITERIA:
                return isSetCriteria();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCriteriaTimestr_args)
                return this.equals((minKeyCriteriaTimestr_args) that);
            return false;
        }

        public boolean equals(minKeyCriteriaTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_criteria = true && this.isSetCriteria();
            boolean that_present_criteria = true && that.isSetCriteria();
            if(this_present_criteria || that_present_criteria) {
                if(!(this_present_criteria && that_present_criteria))
                    return false;
                if(!this.criteria.equals(that.criteria))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCriteria()) ? 131071 : 524287);
            if(isSetCriteria())
                hashCode = hashCode * 8191 + criteria.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCriteriaTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCriteria())
                    .compareTo(other.isSetCriteria());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCriteria()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.criteria, other.criteria);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCriteriaTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("criteria:");
            if(this.criteria == null) {
                sb.append("null");
            }
            else {
                sb.append(this.criteria);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(criteria != null) {
                criteria.validate();
            }
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCriteriaTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteriaTimestr_argsStandardScheme getScheme() {
                return new minKeyCriteriaTimestr_argsStandardScheme();
            }
        }

        private static class minKeyCriteriaTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CRITERIA
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                            struct.criteria.read(iprot);
                            struct.setCriteriaIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.criteria != null) {
                    oprot.writeFieldBegin(CRITERIA_FIELD_DESC);
                    struct.criteria.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCriteriaTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteriaTimestr_argsTupleScheme getScheme() {
                return new minKeyCriteriaTimestr_argsTupleScheme();
            }
        }

        private static class minKeyCriteriaTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCriteria()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCriteria()) {
                    struct.criteria.write(oprot);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteriaTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.criteria = new com.cinchapi.concourse.thrift.TCriteria();
                    struct.criteria.read(iprot);
                    struct.setCriteriaIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCriteriaTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCriteriaTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCriteriaTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCriteriaTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyCriteriaTimestr_result.class, metaDataMap);
        }

        public minKeyCriteriaTimestr_result() {}

        public minKeyCriteriaTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCriteriaTimestr_result(
                minKeyCriteriaTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public minKeyCriteriaTimestr_result deepCopy() {
            return new minKeyCriteriaTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyCriteriaTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyCriteriaTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyCriteriaTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public minKeyCriteriaTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public minKeyCriteriaTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public minKeyCriteriaTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCriteriaTimestr_result)
                return this.equals((minKeyCriteriaTimestr_result) that);
            return false;
        }

        public boolean equals(minKeyCriteriaTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCriteriaTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCriteriaTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCriteriaTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteriaTimestr_resultStandardScheme getScheme() {
                return new minKeyCriteriaTimestr_resultStandardScheme();
            }
        }

        private static class minKeyCriteriaTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCriteriaTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCriteriaTimestr_resultTupleScheme getScheme() {
                return new minKeyCriteriaTimestr_resultTupleScheme();
            }
        }

        private static class minKeyCriteriaTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCriteriaTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCcl_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCcl_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCcl_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCcl_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(minKeyCcl_args.class, metaDataMap);
        }

        public minKeyCcl_args() {}

        public minKeyCcl_args(java.lang.String key, java.lang.String ccl,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCcl_args(minKeyCcl_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyCcl_args deepCopy() {
            return new minKeyCcl_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyCcl_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public minKeyCcl_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyCcl_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyCcl_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyCcl_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCcl_args)
                return this.equals((minKeyCcl_args) that);
            return false;
        }

        public boolean equals(minKeyCcl_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCcl_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCcl_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCcl_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCcl_argsStandardScheme getScheme() {
                return new minKeyCcl_argsStandardScheme();
            }
        }

        private static class minKeyCcl_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCcl_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCcl_args struct) throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCcl_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCcl_argsTupleScheme getScheme() {
                return new minKeyCcl_argsTupleScheme();
            }
        }

        private static class minKeyCcl_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCcl_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCcl_args struct) throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCcl_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCcl_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCcl_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCcl_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(minKeyCcl_result.class, metaDataMap);
        }

        public minKeyCcl_result() {}

        public minKeyCcl_result(com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCcl_result(minKeyCcl_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public minKeyCcl_result deepCopy() {
            return new minKeyCcl_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyCcl_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyCcl_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyCcl_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public minKeyCcl_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public minKeyCcl_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public minKeyCcl_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCcl_result)
                return this.equals((minKeyCcl_result) that);
            return false;
        }

        public boolean equals(minKeyCcl_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCcl_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCcl_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCcl_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCcl_resultStandardScheme getScheme() {
                return new minKeyCcl_resultStandardScheme();
            }
        }

        private static class minKeyCcl_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCcl_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCcl_resultTupleScheme getScheme() {
                return new minKeyCcl_resultTupleScheme();
            }
        }

        private static class minKeyCcl_resultTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCcl_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCclTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCclTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCclTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCclTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyCclTime_args.class, metaDataMap);
        }

        public minKeyCclTime_args() {}

        public minKeyCclTime_args(java.lang.String key, java.lang.String ccl,
                long timestamp, com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCclTime_args(minKeyCclTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyCclTime_args deepCopy() {
            return new minKeyCclTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyCclTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public minKeyCclTime_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public minKeyCclTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyCclTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyCclTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyCclTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCclTime_args)
                return this.equals((minKeyCclTime_args) that);
            return false;
        }

        public boolean equals(minKeyCclTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCclTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCclTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCclTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCclTime_argsStandardScheme getScheme() {
                return new minKeyCclTime_argsStandardScheme();
            }
        }

        private static class minKeyCclTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCclTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCclTime_argsTupleScheme getScheme() {
                return new minKeyCclTime_argsTupleScheme();
            }
        }

        private static class minKeyCclTime_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCclTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCclTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCclTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCclTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCclTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyCclTime_result.class, metaDataMap);
        }

        public minKeyCclTime_result() {}

        public minKeyCclTime_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCclTime_result(minKeyCclTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public minKeyCclTime_result deepCopy() {
            return new minKeyCclTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyCclTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyCclTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyCclTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public minKeyCclTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public minKeyCclTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public minKeyCclTime_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCclTime_result)
                return this.equals((minKeyCclTime_result) that);
            return false;
        }

        public boolean equals(minKeyCclTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCclTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCclTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCclTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCclTime_resultStandardScheme getScheme() {
                return new minKeyCclTime_resultStandardScheme();
            }
        }

        private static class minKeyCclTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCclTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCclTime_resultTupleScheme getScheme() {
                return new minKeyCclTime_resultTupleScheme();
            }
        }

        private static class minKeyCclTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCclTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCclTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCclTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField CCL_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ccl", org.apache.thrift.protocol.TType.STRING, (short) 2);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 3);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 5);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 6);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCclTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCclTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String ccl; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            CCL((short) 2, "ccl"),
            TIMESTAMP((short) 3, "timestamp"),
            CREDS((short) 4, "creds"),
            TRANSACTION((short) 5, "transaction"),
            ENVIRONMENT((short) 6, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // CCL
                    return CCL;
                case 3: // TIMESTAMP
                    return TIMESTAMP;
                case 4: // CREDS
                    return CREDS;
                case 5: // TRANSACTION
                    return TRANSACTION;
                case 6: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CCL,
                    new org.apache.thrift.meta_data.FieldMetaData("ccl",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyCclTimestr_args.class, metaDataMap);
        }

        public minKeyCclTimestr_args() {}

        public minKeyCclTimestr_args(java.lang.String key, java.lang.String ccl,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.ccl = ccl;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCclTimestr_args(minKeyCclTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetCcl()) {
                this.ccl = other.ccl;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyCclTimestr_args deepCopy() {
            return new minKeyCclTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.ccl = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyCclTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getCcl() {
            return this.ccl;
        }

        public minKeyCclTimestr_args setCcl(
                @org.apache.thrift.annotation.Nullable java.lang.String ccl) {
            this.ccl = ccl;
            return this;
        }

        public void unsetCcl() {
            this.ccl = null;
        }

        /**
         * Returns true if field ccl is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCcl() {
            return this.ccl != null;
        }

        public void setCclIsSet(boolean value) {
            if(!value) {
                this.ccl = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public minKeyCclTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyCclTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyCclTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyCclTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case CCL:
                if(value == null) {
                    unsetCcl();
                }
                else {
                    setCcl((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case CCL:
                return getCcl();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case CCL:
                return isSetCcl();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCclTimestr_args)
                return this.equals((minKeyCclTimestr_args) that);
            return false;
        }

        public boolean equals(minKeyCclTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_ccl = true && this.isSetCcl();
            boolean that_present_ccl = true && that.isSetCcl();
            if(this_present_ccl || that_present_ccl) {
                if(!(this_present_ccl && that_present_ccl))
                    return false;
                if(!this.ccl.equals(that.ccl))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetCcl()) ? 131071 : 524287);
            if(isSetCcl())
                hashCode = hashCode * 8191 + ccl.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCclTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCcl())
                    .compareTo(other.isSetCcl());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCcl()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ccl, other.ccl);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCclTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ccl:");
            if(this.ccl == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ccl);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCclTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCclTimestr_argsStandardScheme getScheme() {
                return new minKeyCclTimestr_argsStandardScheme();
            }
        }

        private static class minKeyCclTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // CCL
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.ccl = iprot.readString();
                            struct.setCclIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 6: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.ccl != null) {
                    oprot.writeFieldBegin(CCL_FIELD_DESC);
                    oprot.writeString(struct.ccl);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCclTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCclTimestr_argsTupleScheme getScheme() {
                return new minKeyCclTimestr_argsTupleScheme();
            }
        }

        private static class minKeyCclTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetCcl()) {
                    optionals.set(1);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(2);
                }
                if(struct.isSetCreds()) {
                    optionals.set(3);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(4);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetCcl()) {
                    oprot.writeString(struct.ccl);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCclTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ccl = iprot.readString();
                    struct.setCclIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(5)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyCclTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyCclTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyCclTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyCclTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyCclTimestr_result.class, metaDataMap);
        }

        public minKeyCclTimestr_result() {}

        public minKeyCclTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyCclTimestr_result(minKeyCclTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public minKeyCclTimestr_result deepCopy() {
            return new minKeyCclTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyCclTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyCclTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyCclTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public minKeyCclTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public minKeyCclTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public minKeyCclTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyCclTimestr_result)
                return this.equals((minKeyCclTimestr_result) that);
            return false;
        }

        public boolean equals(minKeyCclTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyCclTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyCclTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyCclTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCclTimestr_resultStandardScheme getScheme() {
                return new minKeyCclTimestr_resultStandardScheme();
            }
        }

        private static class minKeyCclTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyCclTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyCclTimestr_resultTupleScheme getScheme() {
                return new minKeyCclTimestr_resultTupleScheme();
            }
        }

        private static class minKeyCclTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyCclTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyTime_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyTime_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.I64, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyTime_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyTime_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public long timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            TIMESTAMP((short) 2, "timestamp"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // TIMESTAMP
                    return TIMESTAMP;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        private static final int __TIMESTAMP_ISSET_ID = 0;
        private byte __isset_bitfield = 0;
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.I64)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(minKeyTime_args.class, metaDataMap);
        }

        public minKeyTime_args() {}

        public minKeyTime_args(java.lang.String key, long timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyTime_args(minKeyTime_args other) {
            __isset_bitfield = other.__isset_bitfield;
            if(other.isSetKey()) {
                this.key = other.key;
            }
            this.timestamp = other.timestamp;
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyTime_args deepCopy() {
            return new minKeyTime_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            setTimestampIsSet(false);
            this.timestamp = 0;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyTime_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public long getTimestamp() {
            return this.timestamp;
        }

        public minKeyTime_args setTimestamp(long timestamp) {
            this.timestamp = timestamp;
            setTimestampIsSet(true);
            return this;
        }

        public void unsetTimestamp() {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .clearBit(__isset_bitfield, __TIMESTAMP_ISSET_ID);
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield,
                    __TIMESTAMP_ISSET_ID);
        }

        public void setTimestampIsSet(boolean value) {
            __isset_bitfield = org.apache.thrift.EncodingUtils
                    .setBit(__isset_bitfield, __TIMESTAMP_ISSET_ID, value);
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyTime_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyTime_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyTime_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.Long) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyTime_args)
                return this.equals((minKeyTime_args) that);
            return false;
        }

        public boolean equals(minKeyTime_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_timestamp = true;
            boolean that_present_timestamp = true;
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(this.timestamp != that.timestamp)
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191
                    + org.apache.thrift.TBaseHelper.hashCode(timestamp);

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyTime_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyTime_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            sb.append(this.timestamp);
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                // it doesn't seem like you should have to do this, but java
                // serialization is wacky, and doesn't call the default
                // constructor.
                __isset_bitfield = 0;
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyTime_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyTime_argsStandardScheme getScheme() {
                return new minKeyTime_argsStandardScheme();
            }
        }

        private static class minKeyTime_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.I64) {
                            struct.timestamp = iprot.readI64();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyTime_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                oprot.writeI64(struct.timestamp);
                oprot.writeFieldEnd();
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyTime_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyTime_argsTupleScheme getScheme() {
                return new minKeyTime_argsTupleScheme();
            }
        }

        private static class minKeyTime_argsTupleScheme
                extends org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeI64(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyTime_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.timestamp = iprot.readI64();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyTime_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyTime_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyTime_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyTime_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData
                    .addStructMetaDataMap(minKeyTime_result.class, metaDataMap);
        }

        public minKeyTime_result() {}

        public minKeyTime_result(com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyTime_result(minKeyTime_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public minKeyTime_result deepCopy() {
            return new minKeyTime_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyTime_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyTime_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyTime_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public minKeyTime_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public minKeyTime_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyTime_result)
                return this.equals((minKeyTime_result) that);
            return false;
        }

        public boolean equals(minKeyTime_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyTime_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyTime_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyTime_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyTime_resultStandardScheme getScheme() {
                return new minKeyTime_resultStandardScheme();
            }
        }

        private static class minKeyTime_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyTime_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyTime_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyTime_resultTupleScheme getScheme() {
                return new minKeyTime_resultTupleScheme();
            }
        }

        private static class minKeyTime_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyTime_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyTimestr_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyTimestr_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "timestamp", org.apache.thrift.protocol.TType.STRING,
                (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyTimestr_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyTimestr_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String timestamp; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            TIMESTAMP((short) 2, "timestamp"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // TIMESTAMP
                    return TIMESTAMP;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.TIMESTAMP,
                    new org.apache.thrift.meta_data.FieldMetaData("timestamp",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyTimestr_args.class, metaDataMap);
        }

        public minKeyTimestr_args() {}

        public minKeyTimestr_args(java.lang.String key,
                java.lang.String timestamp,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.timestamp = timestamp;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyTimestr_args(minKeyTimestr_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetTimestamp()) {
                this.timestamp = other.timestamp;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyTimestr_args deepCopy() {
            return new minKeyTimestr_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.timestamp = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyTimestr_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getTimestamp() {
            return this.timestamp;
        }

        public minKeyTimestr_args setTimestamp(
                @org.apache.thrift.annotation.Nullable java.lang.String timestamp) {
            this.timestamp = timestamp;
            return this;
        }

        public void unsetTimestamp() {
            this.timestamp = null;
        }

        /**
         * Returns true if field timestamp is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTimestamp() {
            return this.timestamp != null;
        }

        public void setTimestampIsSet(boolean value) {
            if(!value) {
                this.timestamp = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyTimestr_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyTimestr_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyTimestr_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case TIMESTAMP:
                if(value == null) {
                    unsetTimestamp();
                }
                else {
                    setTimestamp((java.lang.String) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case TIMESTAMP:
                return getTimestamp();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case TIMESTAMP:
                return isSetTimestamp();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyTimestr_args)
                return this.equals((minKeyTimestr_args) that);
            return false;
        }

        public boolean equals(minKeyTimestr_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_timestamp = true && this.isSetTimestamp();
            boolean that_present_timestamp = true && that.isSetTimestamp();
            if(this_present_timestamp || that_present_timestamp) {
                if(!(this_present_timestamp && that_present_timestamp))
                    return false;
                if(!this.timestamp.equals(that.timestamp))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
            if(isSetTimestamp())
                hashCode = hashCode * 8191 + timestamp.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyTimestr_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTimestamp())
                    .compareTo(other.isSetTimestamp());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTimestamp()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.timestamp, other.timestamp);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyTimestr_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("timestamp:");
            if(this.timestamp == null) {
                sb.append("null");
            }
            else {
                sb.append(this.timestamp);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyTimestr_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyTimestr_argsStandardScheme getScheme() {
                return new minKeyTimestr_argsStandardScheme();
            }
        }

        private static class minKeyTimestr_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // TIMESTAMP
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.timestamp = iprot.readString();
                            struct.setTimestampIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.timestamp != null) {
                    oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
                    oprot.writeString(struct.timestamp);
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyTimestr_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyTimestr_argsTupleScheme getScheme() {
                return new minKeyTimestr_argsTupleScheme();
            }
        }

        private static class minKeyTimestr_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetTimestamp()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetTimestamp()) {
                    oprot.writeString(struct.timestamp);
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyTimestr_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.timestamp = iprot.readString();
                    struct.setTimestampIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyTimestr_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyTimestr_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);
        private static final org.apache.thrift.protocol.TField EX5_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex5", org.apache.thrift.protocol.TType.STRUCT, (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyTimestr_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyTimestr_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4"),
            EX5((short) 5, "ex5");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                case 5: // EX5
                    return EX5;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.ParseException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX5,
                    new org.apache.thrift.meta_data.FieldMetaData("ex5",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyTimestr_result.class, metaDataMap);
        }

        public minKeyTimestr_result() {}

        public minKeyTimestr_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.ParseException ex3,
                com.cinchapi.concourse.thrift.PermissionException ex4,
                com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
            this.ex5 = ex5;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyTimestr_result(minKeyTimestr_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.ParseException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex4);
            }
            if(other.isSetEx5()) {
                this.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex5);
            }
        }

        public minKeyTimestr_result deepCopy() {
            return new minKeyTimestr_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
            this.ex5 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyTimestr_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyTimestr_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyTimestr_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.ParseException getEx3() {
            return this.ex3;
        }

        public minKeyTimestr_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.ParseException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx4() {
            return this.ex4;
        }

        public minKeyTimestr_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx5() {
            return this.ex5;
        }

        public minKeyTimestr_result setEx5(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex5) {
            this.ex5 = ex5;
            return this;
        }

        public void unsetEx5() {
            this.ex5 = null;
        }

        /**
         * Returns true if field ex5 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx5() {
            return this.ex5 != null;
        }

        public void setEx5IsSet(boolean value) {
            if(!value) {
                this.ex5 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.ParseException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX5:
                if(value == null) {
                    unsetEx5();
                }
                else {
                    setEx5((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            case EX5:
                return getEx5();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            case EX5:
                return isSetEx5();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyTimestr_result)
                return this.equals((minKeyTimestr_result) that);
            return false;
        }

        public boolean equals(minKeyTimestr_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            boolean this_present_ex5 = true && this.isSetEx5();
            boolean that_present_ex5 = true && that.isSetEx5();
            if(this_present_ex5 || that_present_ex5) {
                if(!(this_present_ex5 && that_present_ex5))
                    return false;
                if(!this.ex5.equals(that.ex5))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx5()) ? 131071 : 524287);
            if(isSetEx5())
                hashCode = hashCode * 8191 + ex5.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyTimestr_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx5())
                    .compareTo(other.isSetEx5());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx5()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex5, other.ex5);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyTimestr_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex5:");
            if(this.ex5 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex5);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyTimestr_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyTimestr_resultStandardScheme getScheme() {
                return new minKeyTimestr_resultStandardScheme();
            }
        }

        private static class minKeyTimestr_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // EX5
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex5.read(iprot);
                            struct.setEx5IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex5 != null) {
                    oprot.writeFieldBegin(EX5_FIELD_DESC);
                    struct.ex5.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyTimestr_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyTimestr_resultTupleScheme getScheme() {
                return new minKeyTimestr_resultTupleScheme();
            }
        }

        private static class minKeyTimestr_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                if(struct.isSetEx5()) {
                    optionals.set(5);
                }
                oprot.writeBitSet(optionals, 6);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
                if(struct.isSetEx5()) {
                    struct.ex5.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyTimestr_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(6);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.ParseException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
                if(incoming.get(5)) {
                    struct.ex5 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex5.read(iprot);
                    struct.setEx5IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecords_args implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecords_args");

        private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "key", org.apache.thrift.protocol.TType.STRING, (short) 1);
        private static final org.apache.thrift.protocol.TField RECORDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "records", org.apache.thrift.protocol.TType.LIST, (short) 2);
        private static final org.apache.thrift.protocol.TField CREDS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "creds", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField TRANSACTION_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "transaction", org.apache.thrift.protocol.TType.STRUCT,
                (short) 4);
        private static final org.apache.thrift.protocol.TField ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "environment", org.apache.thrift.protocol.TType.STRING,
                (short) 5);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecords_argsStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecords_argsTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable java.lang.String key; // required
        public @org.apache.thrift.annotation.Nullable java.util.List records; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction; // required
        public @org.apache.thrift.annotation.Nullable java.lang.String environment; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            KEY((short) 1, "key"),
            RECORDS((short) 2, "records"),
            CREDS((short) 3, "creds"),
            TRANSACTION((short) 4, "transaction"),
            ENVIRONMENT((short) 5, "environment");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 1: // KEY
                    return KEY;
                case 2: // RECORDS
                    return RECORDS;
                case 3: // CREDS
                    return CREDS;
                case 4: // TRANSACTION
                    return TRANSACTION;
                case 5: // ENVIRONMENT
                    return ENVIRONMENT;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.KEY,
                    new org.apache.thrift.meta_data.FieldMetaData("key",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            tmpMap.put(_Fields.RECORDS,
                    new org.apache.thrift.meta_data.FieldMetaData("records",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.ListMetaData(
                                    org.apache.thrift.protocol.TType.LIST,
                                    new org.apache.thrift.meta_data.FieldValueMetaData(
                                            org.apache.thrift.protocol.TType.I64))));
            tmpMap.put(_Fields.CREDS,
                    new org.apache.thrift.meta_data.FieldMetaData("creds",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.AccessToken.class)));
            tmpMap.put(_Fields.TRANSACTION,
                    new org.apache.thrift.meta_data.FieldMetaData("transaction",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionToken.class)));
            tmpMap.put(_Fields.ENVIRONMENT,
                    new org.apache.thrift.meta_data.FieldMetaData("environment",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.FieldValueMetaData(
                                    org.apache.thrift.protocol.TType.STRING)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecords_args.class, metaDataMap);
        }

        public minKeyRecords_args() {}

        public minKeyRecords_args(java.lang.String key,
                java.util.List records,
                com.cinchapi.concourse.thrift.AccessToken creds,
                com.cinchapi.concourse.thrift.TransactionToken transaction,
                java.lang.String environment) {
            this();
            this.key = key;
            this.records = records;
            this.creds = creds;
            this.transaction = transaction;
            this.environment = environment;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecords_args(minKeyRecords_args other) {
            if(other.isSetKey()) {
                this.key = other.key;
            }
            if(other.isSetRecords()) {
                java.util.List __this__records = new java.util.ArrayList(
                        other.records);
                this.records = __this__records;
            }
            if(other.isSetCreds()) {
                this.creds = new com.cinchapi.concourse.thrift.AccessToken(
                        other.creds);
            }
            if(other.isSetTransaction()) {
                this.transaction = new com.cinchapi.concourse.thrift.TransactionToken(
                        other.transaction);
            }
            if(other.isSetEnvironment()) {
                this.environment = other.environment;
            }
        }

        public minKeyRecords_args deepCopy() {
            return new minKeyRecords_args(this);
        }

        @Override
        public void clear() {
            this.key = null;
            this.records = null;
            this.creds = null;
            this.transaction = null;
            this.environment = null;
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getKey() {
            return this.key;
        }

        public minKeyRecords_args setKey(
                @org.apache.thrift.annotation.Nullable java.lang.String key) {
            this.key = key;
            return this;
        }

        public void unsetKey() {
            this.key = null;
        }

        /**
         * Returns true if field key is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetKey() {
            return this.key != null;
        }

        public void setKeyIsSet(boolean value) {
            if(!value) {
                this.key = null;
            }
        }

        public int getRecordsSize() {
            return (this.records == null) ? 0 : this.records.size();
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.Iterator getRecordsIterator() {
            return (this.records == null) ? null : this.records.iterator();
        }

        public void addToRecords(long elem) {
            if(this.records == null) {
                this.records = new java.util.ArrayList();
            }
            this.records.add(elem);
        }

        @org.apache.thrift.annotation.Nullable
        public java.util.List getRecords() {
            return this.records;
        }

        public minKeyRecords_args setRecords(
                @org.apache.thrift.annotation.Nullable java.util.List records) {
            this.records = records;
            return this;
        }

        public void unsetRecords() {
            this.records = null;
        }

        /**
         * Returns true if field records is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetRecords() {
            return this.records != null;
        }

        public void setRecordsIsSet(boolean value) {
            if(!value) {
                this.records = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.AccessToken getCreds() {
            return this.creds;
        }

        public minKeyRecords_args setCreds(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.AccessToken creds) {
            this.creds = creds;
            return this;
        }

        public void unsetCreds() {
            this.creds = null;
        }

        /**
         * Returns true if field creds is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetCreds() {
            return this.creds != null;
        }

        public void setCredsIsSet(boolean value) {
            if(!value) {
                this.creds = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionToken getTransaction() {
            return this.transaction;
        }

        public minKeyRecords_args setTransaction(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionToken transaction) {
            this.transaction = transaction;
            return this;
        }

        public void unsetTransaction() {
            this.transaction = null;
        }

        /**
         * Returns true if field transaction is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetTransaction() {
            return this.transaction != null;
        }

        public void setTransactionIsSet(boolean value) {
            if(!value) {
                this.transaction = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.String getEnvironment() {
            return this.environment;
        }

        public minKeyRecords_args setEnvironment(
                @org.apache.thrift.annotation.Nullable java.lang.String environment) {
            this.environment = environment;
            return this;
        }

        public void unsetEnvironment() {
            this.environment = null;
        }

        /**
         * Returns true if field environment is set (has been assigned a value)
         * and false otherwise
         */
        public boolean isSetEnvironment() {
            return this.environment != null;
        }

        public void setEnvironmentIsSet(boolean value) {
            if(!value) {
                this.environment = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case KEY:
                if(value == null) {
                    unsetKey();
                }
                else {
                    setKey((java.lang.String) value);
                }
                break;

            case RECORDS:
                if(value == null) {
                    unsetRecords();
                }
                else {
                    setRecords((java.util.List) value);
                }
                break;

            case CREDS:
                if(value == null) {
                    unsetCreds();
                }
                else {
                    setCreds((com.cinchapi.concourse.thrift.AccessToken) value);
                }
                break;

            case TRANSACTION:
                if(value == null) {
                    unsetTransaction();
                }
                else {
                    setTransaction(
                            (com.cinchapi.concourse.thrift.TransactionToken) value);
                }
                break;

            case ENVIRONMENT:
                if(value == null) {
                    unsetEnvironment();
                }
                else {
                    setEnvironment((java.lang.String) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case KEY:
                return getKey();

            case RECORDS:
                return getRecords();

            case CREDS:
                return getCreds();

            case TRANSACTION:
                return getTransaction();

            case ENVIRONMENT:
                return getEnvironment();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case KEY:
                return isSetKey();
            case RECORDS:
                return isSetRecords();
            case CREDS:
                return isSetCreds();
            case TRANSACTION:
                return isSetTransaction();
            case ENVIRONMENT:
                return isSetEnvironment();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecords_args)
                return this.equals((minKeyRecords_args) that);
            return false;
        }

        public boolean equals(minKeyRecords_args that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_key = true && this.isSetKey();
            boolean that_present_key = true && that.isSetKey();
            if(this_present_key || that_present_key) {
                if(!(this_present_key && that_present_key))
                    return false;
                if(!this.key.equals(that.key))
                    return false;
            }

            boolean this_present_records = true && this.isSetRecords();
            boolean that_present_records = true && that.isSetRecords();
            if(this_present_records || that_present_records) {
                if(!(this_present_records && that_present_records))
                    return false;
                if(!this.records.equals(that.records))
                    return false;
            }

            boolean this_present_creds = true && this.isSetCreds();
            boolean that_present_creds = true && that.isSetCreds();
            if(this_present_creds || that_present_creds) {
                if(!(this_present_creds && that_present_creds))
                    return false;
                if(!this.creds.equals(that.creds))
                    return false;
            }

            boolean this_present_transaction = true && this.isSetTransaction();
            boolean that_present_transaction = true && that.isSetTransaction();
            if(this_present_transaction || that_present_transaction) {
                if(!(this_present_transaction && that_present_transaction))
                    return false;
                if(!this.transaction.equals(that.transaction))
                    return false;
            }

            boolean this_present_environment = true && this.isSetEnvironment();
            boolean that_present_environment = true && that.isSetEnvironment();
            if(this_present_environment || that_present_environment) {
                if(!(this_present_environment && that_present_environment))
                    return false;
                if(!this.environment.equals(that.environment))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
            if(isSetKey())
                hashCode = hashCode * 8191 + key.hashCode();

            hashCode = hashCode * 8191 + ((isSetRecords()) ? 131071 : 524287);
            if(isSetRecords())
                hashCode = hashCode * 8191 + records.hashCode();

            hashCode = hashCode * 8191 + ((isSetCreds()) ? 131071 : 524287);
            if(isSetCreds())
                hashCode = hashCode * 8191 + creds.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetTransaction()) ? 131071 : 524287);
            if(isSetTransaction())
                hashCode = hashCode * 8191 + transaction.hashCode();

            hashCode = hashCode * 8191
                    + ((isSetEnvironment()) ? 131071 : 524287);
            if(isSetEnvironment())
                hashCode = hashCode * 8191 + environment.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecords_args other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetKey())
                    .compareTo(other.isSetKey());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetKey()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.key, other.key);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetRecords())
                    .compareTo(other.isSetRecords());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetRecords()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.records, other.records);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetCreds())
                    .compareTo(other.isSetCreds());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetCreds()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.creds, other.creds);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetTransaction())
                    .compareTo(other.isSetTransaction());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetTransaction()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.transaction, other.transaction);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEnvironment())
                    .compareTo(other.isSetEnvironment());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEnvironment()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.environment, other.environment);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecords_args(");
            boolean first = true;

            sb.append("key:");
            if(this.key == null) {
                sb.append("null");
            }
            else {
                sb.append(this.key);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("records:");
            if(this.records == null) {
                sb.append("null");
            }
            else {
                sb.append(this.records);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("creds:");
            if(this.creds == null) {
                sb.append("null");
            }
            else {
                sb.append(this.creds);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("transaction:");
            if(this.transaction == null) {
                sb.append("null");
            }
            else {
                sb.append(this.transaction);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("environment:");
            if(this.environment == null) {
                sb.append("null");
            }
            else {
                sb.append(this.environment);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(creds != null) {
                creds.validate();
            }
            if(transaction != null) {
                transaction.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecords_argsStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecords_argsStandardScheme getScheme() {
                return new minKeyRecords_argsStandardScheme();
            }
        }

        private static class minKeyRecords_argsStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 1: // KEY
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.key = iprot.readString();
                            struct.setKeyIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // RECORDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                            {
                                org.apache.thrift.protocol.TList _list112 = iprot
                                        .readListBegin();
                                struct.records = new java.util.ArrayList(
                                        _list112.size);
                                long _elem113;
                                for (int _i114 = 0; _i114 < _list112.size; ++_i114) {
                                    _elem113 = iprot.readI64();
                                    struct.records.add(_elem113);
                                }
                                iprot.readListEnd();
                            }
                            struct.setRecordsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // CREDS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                            struct.creds.read(iprot);
                            struct.setCredsIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // TRANSACTION
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                            struct.transaction.read(iprot);
                            struct.setTransactionIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 5: // ENVIRONMENT
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                            struct.environment = iprot.readString();
                            struct.setEnvironmentIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.key != null) {
                    oprot.writeFieldBegin(KEY_FIELD_DESC);
                    oprot.writeString(struct.key);
                    oprot.writeFieldEnd();
                }
                if(struct.records != null) {
                    oprot.writeFieldBegin(RECORDS_FIELD_DESC);
                    {
                        oprot.writeListBegin(
                                new org.apache.thrift.protocol.TList(
                                        org.apache.thrift.protocol.TType.I64,
                                        struct.records.size()));
                        for (long _iter115 : struct.records) {
                            oprot.writeI64(_iter115);
                        }
                        oprot.writeListEnd();
                    }
                    oprot.writeFieldEnd();
                }
                if(struct.creds != null) {
                    oprot.writeFieldBegin(CREDS_FIELD_DESC);
                    struct.creds.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.transaction != null) {
                    oprot.writeFieldBegin(TRANSACTION_FIELD_DESC);
                    struct.transaction.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.environment != null) {
                    oprot.writeFieldBegin(ENVIRONMENT_FIELD_DESC);
                    oprot.writeString(struct.environment);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecords_argsTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecords_argsTupleScheme getScheme() {
                return new minKeyRecords_argsTupleScheme();
            }
        }

        private static class minKeyRecords_argsTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetKey()) {
                    optionals.set(0);
                }
                if(struct.isSetRecords()) {
                    optionals.set(1);
                }
                if(struct.isSetCreds()) {
                    optionals.set(2);
                }
                if(struct.isSetTransaction()) {
                    optionals.set(3);
                }
                if(struct.isSetEnvironment()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetKey()) {
                    oprot.writeString(struct.key);
                }
                if(struct.isSetRecords()) {
                    {
                        oprot.writeI32(struct.records.size());
                        for (long _iter116 : struct.records) {
                            oprot.writeI64(_iter116);
                        }
                    }
                }
                if(struct.isSetCreds()) {
                    struct.creds.write(oprot);
                }
                if(struct.isSetTransaction()) {
                    struct.transaction.write(oprot);
                }
                if(struct.isSetEnvironment()) {
                    oprot.writeString(struct.environment);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecords_args struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.key = iprot.readString();
                    struct.setKeyIsSet(true);
                }
                if(incoming.get(1)) {
                    {
                        org.apache.thrift.protocol.TList _list117 = new org.apache.thrift.protocol.TList(
                                org.apache.thrift.protocol.TType.I64,
                                iprot.readI32());
                        struct.records = new java.util.ArrayList(
                                _list117.size);
                        long _elem118;
                        for (int _i119 = 0; _i119 < _list117.size; ++_i119) {
                            _elem118 = iprot.readI64();
                            struct.records.add(_elem118);
                        }
                    }
                    struct.setRecordsIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.creds = new com.cinchapi.concourse.thrift.AccessToken();
                    struct.creds.read(iprot);
                    struct.setCredsIsSet(true);
                }
                if(incoming.get(3)) {
                    struct.transaction = new com.cinchapi.concourse.thrift.TransactionToken();
                    struct.transaction.read(iprot);
                    struct.setTransactionIsSet(true);
                }
                if(incoming.get(4)) {
                    struct.environment = iprot.readString();
                    struct.setEnvironmentIsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

    public static class minKeyRecords_result implements
            org.apache.thrift.TBase,
            java.io.Serializable,
            Cloneable,
            Comparable {
        private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(
                "minKeyRecords_result");

        private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "success", org.apache.thrift.protocol.TType.STRUCT, (short) 0);
        private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex", org.apache.thrift.protocol.TType.STRUCT, (short) 1);
        private static final org.apache.thrift.protocol.TField EX2_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex2", org.apache.thrift.protocol.TType.STRUCT, (short) 2);
        private static final org.apache.thrift.protocol.TField EX3_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex3", org.apache.thrift.protocol.TType.STRUCT, (short) 3);
        private static final org.apache.thrift.protocol.TField EX4_FIELD_DESC = new org.apache.thrift.protocol.TField(
                "ex4", org.apache.thrift.protocol.TType.STRUCT, (short) 4);

        private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new minKeyRecords_resultStandardSchemeFactory();
        private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new minKeyRecords_resultTupleSchemeFactory();

        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3; // required
        public @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4; // required

        /**
         * The set of fields this struct contains, along with convenience
         * methods for finding and manipulating them.
         */
        public enum _Fields implements org.apache.thrift.TFieldIdEnum {
            SUCCESS((short) 0, "success"),
            EX((short) 1, "ex"),
            EX2((short) 2, "ex2"),
            EX3((short) 3, "ex3"),
            EX4((short) 4, "ex4");

            private static final java.util.Map byName = new java.util.LinkedHashMap();

            static {
                for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
                    byName.put(field.getFieldName(), field);
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, or null if its
             * not found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByThriftId(int fieldId) {
                switch (fieldId) {
                case 0: // SUCCESS
                    return SUCCESS;
                case 1: // EX
                    return EX;
                case 2: // EX2
                    return EX2;
                case 3: // EX3
                    return EX3;
                case 4: // EX4
                    return EX4;
                default:
                    return null;
                }
            }

            /**
             * Find the _Fields constant that matches fieldId, throwing an
             * exception
             * if it is not found.
             */
            public static _Fields findByThriftIdOrThrow(int fieldId) {
                _Fields fields = findByThriftId(fieldId);
                if(fields == null)
                    throw new java.lang.IllegalArgumentException(
                            "Field " + fieldId + " doesn't exist!");
                return fields;
            }

            /**
             * Find the _Fields constant that matches name, or null if its not
             * found.
             */
            @org.apache.thrift.annotation.Nullable
            public static _Fields findByName(java.lang.String name) {
                return byName.get(name);
            }

            private final short _thriftId;
            private final java.lang.String _fieldName;

            _Fields(short thriftId, java.lang.String fieldName) {
                _thriftId = thriftId;
                _fieldName = fieldName;
            }

            public short getThriftFieldId() {
                return _thriftId;
            }

            public java.lang.String getFieldName() {
                return _fieldName;
            }
        }

        // isset id assignments
        public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
        static {
            java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(
                    _Fields.class);
            tmpMap.put(_Fields.SUCCESS,
                    new org.apache.thrift.meta_data.FieldMetaData("success",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TObject.class)));
            tmpMap.put(_Fields.EX,
                    new org.apache.thrift.meta_data.FieldMetaData("ex",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.SecurityException.class)));
            tmpMap.put(_Fields.EX2,
                    new org.apache.thrift.meta_data.FieldMetaData("ex2",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.TransactionException.class)));
            tmpMap.put(_Fields.EX3,
                    new org.apache.thrift.meta_data.FieldMetaData("ex3",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.PermissionException.class)));
            tmpMap.put(_Fields.EX4,
                    new org.apache.thrift.meta_data.FieldMetaData("ex4",
                            org.apache.thrift.TFieldRequirementType.DEFAULT,
                            new org.apache.thrift.meta_data.StructMetaData(
                                    org.apache.thrift.protocol.TType.STRUCT,
                                    com.cinchapi.concourse.thrift.InvalidOperationException.class)));
            metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
            org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(
                    minKeyRecords_result.class, metaDataMap);
        }

        public minKeyRecords_result() {}

        public minKeyRecords_result(
                com.cinchapi.concourse.thrift.TObject success,
                com.cinchapi.concourse.thrift.SecurityException ex,
                com.cinchapi.concourse.thrift.TransactionException ex2,
                com.cinchapi.concourse.thrift.PermissionException ex3,
                com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this();
            this.success = success;
            this.ex = ex;
            this.ex2 = ex2;
            this.ex3 = ex3;
            this.ex4 = ex4;
        }

        /**
         * Performs a deep copy on other.
         */
        public minKeyRecords_result(minKeyRecords_result other) {
            if(other.isSetSuccess()) {
                this.success = new com.cinchapi.concourse.thrift.TObject(
                        other.success);
            }
            if(other.isSetEx()) {
                this.ex = new com.cinchapi.concourse.thrift.SecurityException(
                        other.ex);
            }
            if(other.isSetEx2()) {
                this.ex2 = new com.cinchapi.concourse.thrift.TransactionException(
                        other.ex2);
            }
            if(other.isSetEx3()) {
                this.ex3 = new com.cinchapi.concourse.thrift.PermissionException(
                        other.ex3);
            }
            if(other.isSetEx4()) {
                this.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException(
                        other.ex4);
            }
        }

        public minKeyRecords_result deepCopy() {
            return new minKeyRecords_result(this);
        }

        @Override
        public void clear() {
            this.success = null;
            this.ex = null;
            this.ex2 = null;
            this.ex3 = null;
            this.ex4 = null;
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TObject getSuccess() {
            return this.success;
        }

        public minKeyRecords_result setSuccess(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TObject success) {
            this.success = success;
            return this;
        }

        public void unsetSuccess() {
            this.success = null;
        }

        /**
         * Returns true if field success is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetSuccess() {
            return this.success != null;
        }

        public void setSuccessIsSet(boolean value) {
            if(!value) {
                this.success = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.SecurityException getEx() {
            return this.ex;
        }

        public minKeyRecords_result setEx(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.SecurityException ex) {
            this.ex = ex;
            return this;
        }

        public void unsetEx() {
            this.ex = null;
        }

        /**
         * Returns true if field ex is set (has been assigned a value) and false
         * otherwise
         */
        public boolean isSetEx() {
            return this.ex != null;
        }

        public void setExIsSet(boolean value) {
            if(!value) {
                this.ex = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.TransactionException getEx2() {
            return this.ex2;
        }

        public minKeyRecords_result setEx2(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.TransactionException ex2) {
            this.ex2 = ex2;
            return this;
        }

        public void unsetEx2() {
            this.ex2 = null;
        }

        /**
         * Returns true if field ex2 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx2() {
            return this.ex2 != null;
        }

        public void setEx2IsSet(boolean value) {
            if(!value) {
                this.ex2 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.PermissionException getEx3() {
            return this.ex3;
        }

        public minKeyRecords_result setEx3(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.PermissionException ex3) {
            this.ex3 = ex3;
            return this;
        }

        public void unsetEx3() {
            this.ex3 = null;
        }

        /**
         * Returns true if field ex3 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx3() {
            return this.ex3 != null;
        }

        public void setEx3IsSet(boolean value) {
            if(!value) {
                this.ex3 = null;
            }
        }

        @org.apache.thrift.annotation.Nullable
        public com.cinchapi.concourse.thrift.InvalidOperationException getEx4() {
            return this.ex4;
        }

        public minKeyRecords_result setEx4(
                @org.apache.thrift.annotation.Nullable com.cinchapi.concourse.thrift.InvalidOperationException ex4) {
            this.ex4 = ex4;
            return this;
        }

        public void unsetEx4() {
            this.ex4 = null;
        }

        /**
         * Returns true if field ex4 is set (has been assigned a value) and
         * false otherwise
         */
        public boolean isSetEx4() {
            return this.ex4 != null;
        }

        public void setEx4IsSet(boolean value) {
            if(!value) {
                this.ex4 = null;
            }
        }

        public void setFieldValue(_Fields field,
                @org.apache.thrift.annotation.Nullable java.lang.Object value) {
            switch (field) {
            case SUCCESS:
                if(value == null) {
                    unsetSuccess();
                }
                else {
                    setSuccess((com.cinchapi.concourse.thrift.TObject) value);
                }
                break;

            case EX:
                if(value == null) {
                    unsetEx();
                }
                else {
                    setEx((com.cinchapi.concourse.thrift.SecurityException) value);
                }
                break;

            case EX2:
                if(value == null) {
                    unsetEx2();
                }
                else {
                    setEx2((com.cinchapi.concourse.thrift.TransactionException) value);
                }
                break;

            case EX3:
                if(value == null) {
                    unsetEx3();
                }
                else {
                    setEx3((com.cinchapi.concourse.thrift.PermissionException) value);
                }
                break;

            case EX4:
                if(value == null) {
                    unsetEx4();
                }
                else {
                    setEx4((com.cinchapi.concourse.thrift.InvalidOperationException) value);
                }
                break;

            }
        }

        @org.apache.thrift.annotation.Nullable
        public java.lang.Object getFieldValue(_Fields field) {
            switch (field) {
            case SUCCESS:
                return getSuccess();

            case EX:
                return getEx();

            case EX2:
                return getEx2();

            case EX3:
                return getEx3();

            case EX4:
                return getEx4();

            }
            throw new java.lang.IllegalStateException();
        }

        /**
         * Returns true if field corresponding to fieldID is set (has been
         * assigned a value) and false otherwise
         */
        public boolean isSet(_Fields field) {
            if(field == null) {
                throw new java.lang.IllegalArgumentException();
            }

            switch (field) {
            case SUCCESS:
                return isSetSuccess();
            case EX:
                return isSetEx();
            case EX2:
                return isSetEx2();
            case EX3:
                return isSetEx3();
            case EX4:
                return isSetEx4();
            }
            throw new java.lang.IllegalStateException();
        }

        @Override
        public boolean equals(java.lang.Object that) {
            if(that == null)
                return false;
            if(that instanceof minKeyRecords_result)
                return this.equals((minKeyRecords_result) that);
            return false;
        }

        public boolean equals(minKeyRecords_result that) {
            if(that == null)
                return false;
            if(this == that)
                return true;

            boolean this_present_success = true && this.isSetSuccess();
            boolean that_present_success = true && that.isSetSuccess();
            if(this_present_success || that_present_success) {
                if(!(this_present_success && that_present_success))
                    return false;
                if(!this.success.equals(that.success))
                    return false;
            }

            boolean this_present_ex = true && this.isSetEx();
            boolean that_present_ex = true && that.isSetEx();
            if(this_present_ex || that_present_ex) {
                if(!(this_present_ex && that_present_ex))
                    return false;
                if(!this.ex.equals(that.ex))
                    return false;
            }

            boolean this_present_ex2 = true && this.isSetEx2();
            boolean that_present_ex2 = true && that.isSetEx2();
            if(this_present_ex2 || that_present_ex2) {
                if(!(this_present_ex2 && that_present_ex2))
                    return false;
                if(!this.ex2.equals(that.ex2))
                    return false;
            }

            boolean this_present_ex3 = true && this.isSetEx3();
            boolean that_present_ex3 = true && that.isSetEx3();
            if(this_present_ex3 || that_present_ex3) {
                if(!(this_present_ex3 && that_present_ex3))
                    return false;
                if(!this.ex3.equals(that.ex3))
                    return false;
            }

            boolean this_present_ex4 = true && this.isSetEx4();
            boolean that_present_ex4 = true && that.isSetEx4();
            if(this_present_ex4 || that_present_ex4) {
                if(!(this_present_ex4 && that_present_ex4))
                    return false;
                if(!this.ex4.equals(that.ex4))
                    return false;
            }

            return true;
        }

        @Override
        public int hashCode() {
            int hashCode = 1;

            hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
            if(isSetSuccess())
                hashCode = hashCode * 8191 + success.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
            if(isSetEx())
                hashCode = hashCode * 8191 + ex.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx2()) ? 131071 : 524287);
            if(isSetEx2())
                hashCode = hashCode * 8191 + ex2.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx3()) ? 131071 : 524287);
            if(isSetEx3())
                hashCode = hashCode * 8191 + ex3.hashCode();

            hashCode = hashCode * 8191 + ((isSetEx4()) ? 131071 : 524287);
            if(isSetEx4())
                hashCode = hashCode * 8191 + ex4.hashCode();

            return hashCode;
        }

        @Override
        public int compareTo(minKeyRecords_result other) {
            if(!getClass().equals(other.getClass())) {
                return getClass().getName()
                        .compareTo(other.getClass().getName());
            }

            int lastComparison = 0;

            lastComparison = java.lang.Boolean.valueOf(isSetSuccess())
                    .compareTo(other.isSetSuccess());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetSuccess()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.success, other.success);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx())
                    .compareTo(other.isSetEx());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex, other.ex);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx2())
                    .compareTo(other.isSetEx2());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx2()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex2, other.ex2);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx3())
                    .compareTo(other.isSetEx3());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx3()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex3, other.ex3);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            lastComparison = java.lang.Boolean.valueOf(isSetEx4())
                    .compareTo(other.isSetEx4());
            if(lastComparison != 0) {
                return lastComparison;
            }
            if(isSetEx4()) {
                lastComparison = org.apache.thrift.TBaseHelper
                        .compareTo(this.ex4, other.ex4);
                if(lastComparison != 0) {
                    return lastComparison;
                }
            }
            return 0;
        }

        @org.apache.thrift.annotation.Nullable
        public _Fields fieldForId(int fieldId) {
            return _Fields.findByThriftId(fieldId);
        }

        public void read(org.apache.thrift.protocol.TProtocol iprot)
                throws org.apache.thrift.TException {
            scheme(iprot).read(iprot, this);
        }

        public void write(org.apache.thrift.protocol.TProtocol oprot)
                throws org.apache.thrift.TException {
            scheme(oprot).write(oprot, this);
        }

        @Override
        public java.lang.String toString() {
            java.lang.StringBuilder sb = new java.lang.StringBuilder(
                    "minKeyRecords_result(");
            boolean first = true;

            sb.append("success:");
            if(this.success == null) {
                sb.append("null");
            }
            else {
                sb.append(this.success);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex:");
            if(this.ex == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex2:");
            if(this.ex2 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex2);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex3:");
            if(this.ex3 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex3);
            }
            first = false;
            if(!first)
                sb.append(", ");
            sb.append("ex4:");
            if(this.ex4 == null) {
                sb.append("null");
            }
            else {
                sb.append(this.ex4);
            }
            first = false;
            sb.append(")");
            return sb.toString();
        }

        public void validate() throws org.apache.thrift.TException {
            // check for required fields
            // check for sub-struct validity
            if(success != null) {
                success.validate();
            }
        }

        private void writeObject(java.io.ObjectOutputStream out)
                throws java.io.IOException {
            try {
                write(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                out)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private void readObject(java.io.ObjectInputStream in)
                throws java.io.IOException, java.lang.ClassNotFoundException {
            try {
                read(new org.apache.thrift.protocol.TCompactProtocol(
                        new org.apache.thrift.transport.TIOStreamTransport(
                                in)));
            }
            catch (org.apache.thrift.TException te) {
                throw new java.io.IOException(te);
            }
        }

        private static class minKeyRecords_resultStandardSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecords_resultStandardScheme getScheme() {
                return new minKeyRecords_resultStandardScheme();
            }
        }

        private static class minKeyRecords_resultStandardScheme extends
                org.apache.thrift.scheme.StandardScheme {

            public void read(org.apache.thrift.protocol.TProtocol iprot,
                    minKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TField schemeField;
                iprot.readStructBegin();
                while (true) {
                    schemeField = iprot.readFieldBegin();
                    if(schemeField.type == org.apache.thrift.protocol.TType.STOP) {
                        break;
                    }
                    switch (schemeField.id) {
                    case 0: // SUCCESS
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.success = new com.cinchapi.concourse.thrift.TObject();
                            struct.success.read(iprot);
                            struct.setSuccessIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 1: // EX
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                            struct.ex.read(iprot);
                            struct.setExIsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 2: // EX2
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                            struct.ex2.read(iprot);
                            struct.setEx2IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 3: // EX3
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                            struct.ex3.read(iprot);
                            struct.setEx3IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    case 4: // EX4
                        if(schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                            struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                            struct.ex4.read(iprot);
                            struct.setEx4IsSet(true);
                        }
                        else {
                            org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                    schemeField.type);
                        }
                        break;
                    default:
                        org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
                                schemeField.type);
                    }
                    iprot.readFieldEnd();
                }
                iprot.readStructEnd();

                // check for required fields of primitive type, which can't be
                // checked in the validate method
                struct.validate();
            }

            public void write(org.apache.thrift.protocol.TProtocol oprot,
                    minKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                struct.validate();

                oprot.writeStructBegin(STRUCT_DESC);
                if(struct.success != null) {
                    oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
                    struct.success.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex != null) {
                    oprot.writeFieldBegin(EX_FIELD_DESC);
                    struct.ex.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex2 != null) {
                    oprot.writeFieldBegin(EX2_FIELD_DESC);
                    struct.ex2.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex3 != null) {
                    oprot.writeFieldBegin(EX3_FIELD_DESC);
                    struct.ex3.write(oprot);
                    oprot.writeFieldEnd();
                }
                if(struct.ex4 != null) {
                    oprot.writeFieldBegin(EX4_FIELD_DESC);
                    struct.ex4.write(oprot);
                    oprot.writeFieldEnd();
                }
                oprot.writeFieldStop();
                oprot.writeStructEnd();
            }

        }

        private static class minKeyRecords_resultTupleSchemeFactory
                implements org.apache.thrift.scheme.SchemeFactory {
            public minKeyRecords_resultTupleScheme getScheme() {
                return new minKeyRecords_resultTupleScheme();
            }
        }

        private static class minKeyRecords_resultTupleScheme extends
                org.apache.thrift.scheme.TupleScheme {

            @Override
            public void write(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet optionals = new java.util.BitSet();
                if(struct.isSetSuccess()) {
                    optionals.set(0);
                }
                if(struct.isSetEx()) {
                    optionals.set(1);
                }
                if(struct.isSetEx2()) {
                    optionals.set(2);
                }
                if(struct.isSetEx3()) {
                    optionals.set(3);
                }
                if(struct.isSetEx4()) {
                    optionals.set(4);
                }
                oprot.writeBitSet(optionals, 5);
                if(struct.isSetSuccess()) {
                    struct.success.write(oprot);
                }
                if(struct.isSetEx()) {
                    struct.ex.write(oprot);
                }
                if(struct.isSetEx2()) {
                    struct.ex2.write(oprot);
                }
                if(struct.isSetEx3()) {
                    struct.ex3.write(oprot);
                }
                if(struct.isSetEx4()) {
                    struct.ex4.write(oprot);
                }
            }

            @Override
            public void read(org.apache.thrift.protocol.TProtocol prot,
                    minKeyRecords_result struct)
                    throws org.apache.thrift.TException {
                org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
                java.util.BitSet incoming = iprot.readBitSet(5);
                if(incoming.get(0)) {
                    struct.success = new com.cinchapi.concourse.thrift.TObject();
                    struct.success.read(iprot);
                    struct.setSuccessIsSet(true);
                }
                if(incoming.get(1)) {
                    struct.ex = new com.cinchapi.concourse.thrift.SecurityException();
                    struct.ex.read(iprot);
                    struct.setExIsSet(true);
                }
                if(incoming.get(2)) {
                    struct.ex2 = new com.cinchapi.concourse.thrift.TransactionException();
                    struct.ex2.read(iprot);
                    struct.setEx2IsSet(true);
                }
                if(incoming.get(3)) {
                    struct.ex3 = new com.cinchapi.concourse.thrift.PermissionException();
                    struct.ex3.read(iprot);
                    struct.setEx3IsSet(true);
                }
                if(incoming.get(4)) {
                    struct.ex4 = new com.cinchapi.concourse.thrift.InvalidOperationException();
                    struct.ex4.read(iprot);
                    struct.setEx4IsSet(true);
                }
            }
        }

        private static  S scheme(
                org.apache.thrift.protocol.TProtocol proto) {
            return (org.apache.thrift.scheme.StandardScheme.class
                    .equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY
                            : TUPLE_SCHEME_FACTORY).getScheme();
        }
    }

}